以编程方式编辑Photoshop PSD文本层

2021-06-19 13:23:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多层PSD,其中一个特定的层是非光栅化文本。我正试图从bash/perl/python/whatever else程序中找出一种可行的方法:

  1. 加载屏蔽门
  2. 编辑所述层中的文本
  3. 展平图像中的所有层
  4. 另存为网络友好格式,如PNG或JPG

我立刻想到了ImageMagick,但我不认为我可以通过IM编辑文本层。如果我能以其他编程方式完成前两个步骤,我总是可以使用ImageMagick来执行最后两个步骤。

经过几个小时的搜索和CPAN和PyPI,我仍然没有发现什么有希望的。有人对这个问题有什么建议或想法吗?

3条回答
网友
1楼 ·

我能想到的在PSD中自动更改文本的唯一方法是使用基于regex的替换。

  1. 在Photoshop中创建一个非常简单的图片,可能是白色背景和文本层,文本长度已知。
  2. 在文件中搜索文本,然后使用十六进制编辑器在附近搜索文本的长度(可能是或可能不是文件格式的一部分)。
  3. 尝试更改文本,首先更改为相同长度的字符串,然后更改为较短/较长的文本。
  4. 每次更改后在Photoshop中打开以查看文件是否已损坏。

此方法(如果可行)仅在相关层包含可替换为其他值的已知字符串时才起作用。请注意,我不知道这是否可行,因为我在这台计算机上没有Photoshop来尝试这种方法。也许你能成功?

至于转换成png,我不知所措。如果替换脚本是在Python中,您可以使用Python图像库(PIL,which seems to support it)来完成,否则您可能只需要打开Photoshop来完成转换。这意味着,一开始就务实地修改文本可能不值得。

网友
2楼 ·

如果您不喜欢使用官方支持的AppleScript、JavaScript或VBScript,那么也可以在Python中使用。本文Photoshop scripting with Python对此进行了解释,它依赖于Photoshop的COM接口。

我没有试过,所以万一对你不起作用: 如果文本是在conversion to SVG之后保留的,那么您可以简单地用您喜欢的任何工具替换它。然后,将其转换为PNG(例如通过inkscape --export-png=...)。

网友
3楼 ·

你考虑过在GIMP中打开和编辑图像吗?它有很好的PSD支持,可以用多种语言编写脚本。

您使用哪一个部分取决于您的平台,Perl接口在我知道的最后一个版本中不能在Windows上工作。我相信所有港口都支持这个计划。

相关问题