38

我正在使用 ImageMagick 从 PSD 中提取图层,并且可以通过以下方式将它们全部提取出来:

convert image.psd image-%d.png

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

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

+----+
|一个 | +-+ +-+
| | = |A| + |B|
| 乙| +-+ +-+
+----+

我想要的是:

+----+ +----+ +----+
|一个 | |一个 | | |
| | = | | + | |
| 乙| | | | 乙|
+----+ +----+ +----+

生成的图像具有透明背景,以便我可以这样做:

+----+ +----+
|一个 | |一个 |+
| | = | ||
| 乙| | 乙||
+----+ +----+|
          +----+

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

4

3 回答 3

23

我使用这个命令行来做描述的事情:

convert.exe <filename>.psd -set dispose Background -coalesce <outfilename>.png
于 2011-09-14T04:43:03.107 回答
9

键入此命令以从 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)

于 2015-04-01T20:25:31.560 回答
2

最后,这对我有用:

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

归功于 ImageMagick 论坛的“ snibgo

于 2021-04-03T18:11:31.583 回答