使用ImageMagick从PSD中提取图层,保留布局

时间:2011-07-06 15:20:45

标签: image-processing command-line imagemagick psd

我正在使用ImageMagick从PSD中提取图层,并且它可以很好地完成:

convert image.psd image-%d.png

但是,生成的PNG图像具有不同的尺寸,具体取决于图层的实际内容。我想要的是提取所有图层,但是它们具有相同的大小,这样我以后就可以轻松地将它们放在彼此的顶部,并使所有内容与原始PSD中的一样排列。

如果它有助于可视化,这就是我目前使用上述命令获得的内容:

+----+
|A   |   +-+   +-+
|    | = |A| + |B|
|   B|   +-+   +-+
+----+

我想要的是:

+----+   +----+   +----+
|A   |   |A   |   |    |
|    | = |    | + |    |
|   B|   |    |   |   B|
+----+   +----+   +----+

结果图像具有透明背景,以便我可以这样做:

+----+   +----+ 
|A   |   |A   |+
|    | = |    ||
|   B|   |   B||
+----+   +----+|
          +----+

我与ImageMagick无关,所以如果有另一个(最好是命令行)工具可以实现这一点,那很好。

3 个答案:

答案 0 :(得分:23)

我使用此命令行执行描述:

convert.exe <filename>.psd -set dispose Background -coalesce <outfilename>.png

答案 1 :(得分:7)

键入此项以从PSD文件中提取第2层:

convert             \
  <filename>.psd[0] \
  <filename>.psd[2] \
  \(                    \
     -clone 0           \
     -alpha transparent \
  \)                    \
 -swap 0           \
 +delete           \
 -coalesce         \
 -compose src-over \
 -composite        \
 <extracted-filename>.png

首先创建一个与PSD文件大小相同的透明画布,然后将其与第2层相结合,保持其原始布局(-coalesce

答案 2 :(得分:2)

最后这对我有用:

convert -dispose Background "input.psd" -layers coalesce "output.png"

信用转到"snibgo" from the ImageMagick forums