我有一个多层PSD,其中一个特定图层是非光栅化文本。我试图找出一种方法,从bash / perl / python / whatever-else程序:
我立刻想到了ImageMagick,但我认为我不能通过IM编辑文本图层。如果我可以通过其他一些编程方式完成前两个步骤,我总是可以使用ImageMagick执行最后两个步骤。
经过几个小时的谷歌搜索和搜索CPAN和PyPI后,我仍然没有找到任何有希望的东西。有没有人对这个问题有任何建议或想法?
答案 0 :(得分:6)
如果您不想使用官方支持的AppleScript,JavaScript或VBScript,那么也可以在Python中使用它。这篇文章在Photoshop scripting with Python中有所解释,它依赖于Photoshop的COM界面。
我没有尝试过,所以万一它不适合你:
如果您的文字在conversion to SVG之后保留,那么您可以简单地用您喜欢的任何工具替换它。然后,将其转换为PNG(例如,通过inkscape --export-png=...
)。
答案 1 :(得分:3)
我能想到的唯一可以自动更改PSD内部文本的方法是使用基于正则表达式的替换。
此方法(如果可行)仅在相关图层包含已知字符串时才有效,该字符串可替换为您的其他值。请注意,我不知道这是否会起作用,因为我在这台计算机上没有Photoshop来尝试这种方法。也许你可以让它发挥作用?
至于转换为png,我很茫然。如果替换脚本是在Python中,您可以使用Python Imaging Library(PIL,which seems to support it)来完成,但是否则您可能只需要打开Photoshop来进行转换。这意味着首先实际更改文本可能不值得。
答案 2 :(得分:3)
您是否考虑过在GIMP中打开和编辑图像?它具有非常好的PSD支持,并且可以用多种语言编写脚本。
您使用哪一个部分取决于您的平台,Perl界面在我知道的最后一个窗口上不起作用。我相信所有端口都支持Scheme。
答案 3 :(得分:2)
您可以使用Photoshop本身通过OLE执行此操作。当然,您需要安装Photoshop。 Perl中的Win32 :: OLE或Python中的类似模块。见http://www.adobe.com/devnet/photoshop/pdfs/PhotoshopScriptingGuide.pdf
答案 4 :(得分:1)
如果你要自动化Photoshop,你几乎必须使用Photoshop自己的脚本系统。我不认为有办法解决这个问题。
以不同的方式查看问题,您可以从Photoshop导出到支持图层的其他格式,例如PNG,可由ImageMagick编辑吗?
答案 5 :(得分:1)
您也可以使用Node.js尝试此操作。我做了PSD command-line tool
单行命令安装(需要安装NodeJS / NPM)
npm install -g psd-cli
然后您可以通过在终端中输入
来使用它 psd myfile.psd -t
您可以查看从其他节点脚本使用它的代码,或者通过shell使用它来自另一个Bash / Perl /无论什么脚本。