Photoshop-PSD-Textebenen programmgesteuert bearbeiten

8

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:

  1. Laden Sie die PSD
  2. Bearbeiten Sie den Text in dieser Ebene
  3. flacht alle Ebenen im Bild ab
  4. Speichern Sie ein webfreundliches Format wie PNG oder JPG

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?

    
EvanK 12.05.2009, 02:27
quelle

6 Antworten

5

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=... ).

    
wr. 12.05.2009, 07:07
quelle
3

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.

    
Dylan 12.05.2009 08:12
quelle
3

Die einzige Möglichkeit, das Ändern von Text in einer PSD zu automatisieren, wäre die Verwendung einer Regex-basierten Substitution.

  1. Erstellen Sie ein sehr einfaches Bild in Photoshop, vielleicht einen weißen Hintergrund und eine Textebene, wobei der Text eine bekannte Länge hat.
  2. Durchsuchen Sie die Datei nach Ihrem Text und suchen Sie mit einem Hex-Editor in der Nähe nach der Länge des Textes (der Teil des Dateiformats sein kann oder nicht).
  3. Versuchen Sie, den Text zu ändern, zuerst zu einer Zeichenfolge gleicher Länge und dann zu etwas kürzer / länger.
  4. Nach jeder Änderung in Photoshop öffnen, um festzustellen, ob die Datei beschädigt ist.

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.

    
Nick Meharry 12.05.2009 05:18
quelle
2

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 Ссылка

    
Alexandr Ciornii 12.05.2009 10:35
quelle
1

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?

    
AmbroseChapel 12.05.2009 03:01
quelle
1

Sie können dies auch mit Node.js versuchen. Ich habe ein PSD-Befehlszeilentool

erstellt

Einzeilige 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.

    
kartsims 28.01.2016 10:14
quelle

Tags und Links