Ich habe eine mehrschichtige PSD, wobei eine bestimmte Ebene nicht gerasterter Text ist. Ich versuche, einen Weg zu finden, ich kann aus einem bash / perl / python / was auch immer-sonst-Programm:
Ich dachte sofort an ImageMagick , aber ich glaube nicht, dass ich die Textebene über IM bearbeiten kann. Wenn ich die ersten beiden Schritte auf andere programmatische Weise bewerkstelligen kann, kann ich ImageMagick immer verwenden, um die letzten beiden Schritte durchzuführen.
Nach ein paar Stunden Googeln und Suchen von CPAN und PyPI habe ich immer noch nichts vielversprechendes gefunden. Hat jemand Rat oder Ideen zu diesem Thema?
Wenn Sie das offiziell unterstützte AppleScript, JavaScript oder VBScript nicht verwenden möchten, gibt es auch die Möglichkeit, dies in Python zu tun. Dies wird im Artikel Photoshop-Scripting mit Python erklärt, der auf Photoshop's COM basiert Schnittstelle.
Ich habe es nicht versucht, also falls es nicht für Sie funktioniert:
Wenn Ihr Text nach Umwandlung in SVG dann können Sie es einfach durch welches Werkzeug Sie möchten ersetzen. Danach wandle es in PNG um (z. B. by inkscape --export-png=...
).
Haben Sie darüber nachgedacht, das Bild in The GIMP zu öffnen und zu bearbeiten? Es hat sehr gute PSD-Unterstützung und kann in mehreren Sprachen geschrieben werden.
Welche Sie benutzen, hängt zum Teil von Ihrer Plattform ab, die Perl-Schnittstelle hat unter Windows nicht funktioniert, die letzte, die ich kannte. Ich glaube, Scheme wird in allen Häfen unterstützt.
Die einzige Möglichkeit, das Ändern von Text in einer PSD zu automatisieren, wäre die Verwendung einer Regex-basierten Substitution.
Diese Methode funktioniert nur, wenn der betreffende Layer eine bekannte Zeichenfolge enthält, die den anderen Wert ersetzen kann. Beachten Sie, dass ich keine Ahnung habe, ob das funktioniert, da ich Photoshop nicht auf diesem Computer habe, um diese Methode auszuprobieren. Vielleicht können Sie es zum Laufen bringen?
Wie für die Umwandlung in PNG bin ich ratlos. Wenn das Ersetzungsskript in Python ist, können Sie es möglicherweise mit der Python Imaging Library (PIL, ) tun, die es zu unterstützen scheint ), ansonsten müssen Sie nur Photoshop öffnen, um die Konvertierung durchzuführen. Das bedeutet, dass es sich wahrscheinlich nicht lohnt, den Text von Anfang an pragmatisch zu ändern.
Sie können Photoshop selbst verwenden, um dies mit OLE zu tun. Sie müssen natürlich Photoshop installieren. Win32 :: OLE in Perl oder ein ähnliches Modul in Python. Siehe Ссылка
Wenn Sie Photoshop automatisieren möchten, müssen Sie ziemlich genau die eigenen Scriptsysteme von Photoshop verwenden. Ich denke nicht, dass es einen Weg gibt.
Wenn Sie das Problem anders betrachten, können Sie von Photoshop in ein anderes Format exportieren, das Ebenen unterstützt, wie PNG, das von ImageMagick bearbeitet werden kann?
Sie können dies auch mit Node.js versuchen. Ich habe ein PSD-Befehlszeilentool
erstelltEinzeilige Befehlsinstallation (benötigt NodeJS / NPM installiert)
npm install -g psd-cli
Sie können es dann verwenden, indem Sie Ihr Terminal eingeben
psd myfile.psd -t
Sie können den Code auslesen, um ihn aus einem anderen Knotenscript zu verwenden, oder Sie verwenden ihn über Ihre Shell aus einem anderen Bash / Perl / whatever-Skript.