Frage

Ich habe eine mehrschichtige PSD, mit einer spezifischen Schicht Text nicht-gerastert zu sein. Ich versuche, einen Weg, um herauszufinden, ich kann, von einer Bash / perl / python / was auch immer-else-Programm:

  1. laden Sie die PSD
  2. bearbeiten Sie den Text in der Schicht
  3. glätten alle Ebenen im Bild
  4. speichern als Web-freundliches Format wie PNG oder JPG

Ich dachte sofort an ImageMagick , aber ich glaube nicht, dass ich die Textebene durch IM bearbeiten kann. Wenn ich die ersten beiden Schritte eine andere programmatische Weise erreichen kann, kann ich immer ImageMagick verwenden, um die letzten beiden Schritte auszuführen.

Nach ein paar Stunden googeln und suchen CPAN und PyPI, ich habe noch nichts gefunden viel versprechend. Hat jemand Tipps oder Ideen zum Thema?

War es hilfreich?

Lösung

Wenn Sie nicht den offiziell unterstützt Applescript, JavaScript verwenden mögen, oder VBScript, dann gibt es auch die Möglichkeit, es in Python zu tun. Dies wird in dem Artikel Photoshop Scripting mit Python erklärt, die auf Photoshop COM-Schnittstelle angewiesen ist.

Ich habe nicht versucht, so falls es nicht für Sie arbeiten: Wenn Ihr Text wird nach Umwandlung SVG dann können Sie einfach ersetzen durch was auch immer Werkzeug, das Sie mögen. Danach wandelt es in PNG (z. B. durch inkscape --export-png=...).

Andere Tipps

Haben Sie darüber nachgedacht Öffnen und Bearbeiten des Bildes in GIMP? Es hat sehr gute PSD-Unterstützung und kann in mehreren Sprachen scripted werden.

Welche Sie hängt von Ihrer Plattform teilweise verwenden, hat die Perl-Schnittstelle nicht unter Windows arbeiten, das letzte, was ich wusste. Ich glaube Schema ist in allen Ports unterstützt.

Die einzige Möglichkeit, die ich denken kann den Wechsel von Text innerhalb einer PSD automatisieren würde eine Regex basierend Substitution zu verwenden sein.

  1. Erstellen Sie ein sehr einfaches Bild in Photoshop, vielleicht einen weißen Hintergrund und eine Textebene, mit dem Text einer bekannten Länge zu sein.
  2. Suchen Sie die Datei für Ihren Text, und mit einem Hex-Editor, sucht in der Nähe für die Länge des Textes (die können oder auch nicht Teil des Dateiformates sein kann).
  3. Versuchen Sie, den Text zu ändern, erst in einen String mit der gleichen Länge, dann etwas kürzer / länger.
  4. Öffnen in Photoshop nach jeder Änderung zu sehen, ob die Datei beschädigt ist.

Dieses Verfahren, wenn vertretbare, funktioniert nur, wenn die betreffende Schicht eine bekannte Zeichenfolge enthält, die für Ihren anderen Wert ersetzt werden können. Beachten Sie, dass ich keine Ahnung, ob dies funktionieren wird, wie ich auf diesem Computer hat Photoshop diese Methode nicht auszuprobieren. Vielleicht können Sie es funktioniert?

Wie zu png konvertieren, ich bin ratlos. Wenn das Ersetzen Skript in Python ist, können Sie in der Lage sein, es mit dem Python Imaging Library zu tun (PIL, das scheint es zu unterstützen ), aber ansonsten kann man muss nur Photoshop öffnen Sie die Konvertierung zu tun. Was bedeutet, dass es wahrscheinlich nicht wert wäre, es den Text pragmatisch in erster Linie zu ändern.

Sie können mit Photoshop selbst dies mit OLE zu tun. Sie müssen Photoshop installieren, natürlich. Win32 :: OLE in Perl oder ähnliches Modul in Python. Siehe http://www.adobe.com/devnet/photoshop/pdfs/PhotoshopScriptingGuide .pdf

Wenn Sie vorhaben, Photoshop zu automatisieren, Sie haben ziemlich viel Photoshop eigene Scripting-Systeme zu verwenden. Ich glaube nicht, dass es ein Weg, um das.

Mit Blick auf das Problem eine andere Art und Weise, können Sie von Photoshop in ein anderes Format exportieren, die Schichten unterstützt, wie PNG, die von ImageMagick bearbeitbar ist?

scroll top