使用"可编辑文本创建多层psd文件"使用命令行

时间:2015-01-17 22:46:36

标签: linux image-processing imagemagick photoshop gimp

我正在尝试使用命令行(linux / osx)创建一个PSD文件。 例: 我有5个文本块

“你好” “这个” “是” “一个” “示例”

我需要一种方法来获取这5个文本块并生成一个psd,每个文本块有5个不同的层,我需要它们在psd生成并在photoshop中打开后可编辑。

你们熟悉任何可以做到这一点的软件吗?

我尝试了GIMP和ImageMagick,我能够生成一个带有5层文本块的psd,但不幸的是imageMagick似乎将文本转换为实际图像,因此这使得文本在photoshop中打开后不可编辑。

2 个答案:

答案 0 :(得分:0)

确实 - 大多数能够操作PSD图像的软件只能使用它的一部分。 GIMP本身只会将文本PSD图层打开为像素。

我对你的工作流程的暗示是从photoshop中编写脚本,然后用文本标记创建另一种文件,然后在那里呈现。但是,通过命令行无法做到这一点 - (也许它可以通过GUI自动化工具实现自动化。)

啊 - 它只是打了我 - 也许你可以使用SVG文件格式,并将其转换为PSD(转换仍然需要在Photoshop内部进行手动交互 - 但也许SVG文件足够接近你可以发货直接给你的最终用户,而不是PSD)

对于SVG方法:在Inskcape中创建一个新的模板文件,并且可能 你喜欢的5块文字。最终结果将包含XML块中的文本,如下所示:

<text
   xml:space="preserve"
   style="font-size:40px;...font-family:Sans"
   x="140"
   y="123.79075"
   id="text2999"
   sodipodi:linespacing="125%"><tspan
     sodipodi:role="line"
     id="tspan3001"
     x="140"
     y="123.79075">MyText here</tspan></text>

替换标记(例如{})的实际文本(My text here),然后您可以使用python oneliner创建svg文件,例如:

python -c "import sys; open(sys.argv[2], 'wt').write(open(sys.argv[1]).read().format(*sys.argv[3:])  )" template.svg drawing.svg My other text file shines

这种方法的优点是您可以以非常详细的方式实际设计和格式化模板。 (嗯......浏览一下,看起来photoshop不能简单地打开SVG文件......反正太糟糕了 - 也许你可以将你需要的工作流程从它上面转移出去?)

答案 1 :(得分:0)

您可以使用Applescript或Extendscript编写Photoshop本身的脚本 - 有一本指南here

你可以使用Applescript版本做这样的事情:

tell application "Finder" to set thePath to (home as string) & "TestText.tif"
set thePosix to quoted form of POSIX path of thePath
display dialog thePosix
do shell script "touch " & thePosix

tell application "Adobe Photoshop CC"
    activate
    make new document with properties {name:"Testtextlayers"}
    make new art layer at current document with properties {kind:text layer}
    make new art layer at current document with properties {kind:text layer}
    tell text object of art layer 1 of current document
        set {contents, size, stroke color} to {"Hello", 30.0, {class:RGB hex color, hex value:"913b8e"}}
    end tell
    tell text object of art layer 2 of current document
        set {contents, size, stroke color, position} to {"World", 48.0, {class:RGB hex color, hex value:"339966"}, {3, 4}}
    end tell
    set myOptions to {class:TIFF save options, image compression:none, byte order:Mac OS, save alpha channels:true, save spot colors:true, embed color profile:true}
    save current document in file thePath as TIFF with options myOptions appending no extension without copying

end tell

Extendscript版本在Linux和Windows上可以更容易移植。