将多个PSD图层文件导出到PNG,同时对每个图层应用色调效果

时间:2015-02-19 03:36:28

标签: image-processing imagemagick png psd image-conversion

我们有以下PSD https://app.box.com/s/rf514j3wnic1xkt6y1q3b5qnk0zds2rl

这是一个透明的PSD,有一个环金属基层。

每个石块的附加层。

https://app.box.com/s/i8lhshbl27pvjmmczjq2bhla4mzw9cwn之类的东西  这个

我们希望能够根据用户输入将色调应用于每个单独的石材层,并将最终图像导出为PNG文件。为用户提供根据自己的喜好设计戒指的能力。

现在我想弄清楚实现此功能的最佳方法是什么?

我们希望在.net中生成服务器端的映像,以便可以共享它。

解决这个问题的最佳方式是什么?我正在考虑使用像imagemagick这样的图像库来转换图像。 但我无法找到任何可以在将PSD文件转换为其他文件格式之前在PSD文件中更改多个图层的示例。

任何有关实现此目标的方法或建议都会有很大帮助。

1 个答案:

答案 0 :(得分:1)

编辑分层PSD文件并不容易。我建议您将环和每个宝石层保存为单独的PNG文件。然后你可以用ImageMagick做这些事情:

#!/bin/bash
convert ring.png                            \
   \( layer-1.png \( +clone +level-colors red       \) -compose Multiply   -composite \) -compose overlay -composite \
   \( layer-2.png \( +clone +level-colors green     \) -compose VividLight -composite \) -compose overlay -composite \
   \( layer-3.png \( +clone +level-colors blue      \) -compose LinearBurn -composite \) -compose overlay -composite \
   \( layer-4.png \( +clone +level-colors "#ffff00" \) -compose Saturate   -composite \) -compose overlay -composite \
   result.png

给你一个这样的PNG文件:

enter image description here

你可能想尝试混合模式,我只是尝试了一些看起来模糊不清的眼睛。如果需要所有可用混合模式的列表,可以执行以下操作:

identify -list compose
Atop
Blend
Blur
Bumpmap
ChangeMask
Clear
ColorBurn
ColorDodge
Colorize
CopyBlack
CopyBlue
CopyCyan
CopyGreen
Copy
CopyMagenta
CopyOpacity
CopyRed
CopyYellow
Darken
DarkenIntensity
DivideDst
DivideSrc
Dst
Difference
Displace
Dissolve
Distort
DstAtop
DstIn
DstOut
DstOver
Exclusion
HardLight
HardMix
Hue
In
Lighten
LightenIntensity
LinearBurn
LinearDodge
LinearLight
Luminize
Mathematics
MinusDst
MinusSrc
Modulate
ModulusAdd
ModulusSubtract
Multiply
None
Out
Overlay
Over
PegtopLight
PinLight
Plus
Replace
Saturate
Screen
SoftLight
Src
SrcAtop
SrcIn
SrcOut
SrcOver
VividLight
Xor

我还通过名称指定了一些颜色,并通过十六进制指定了一个颜色,因此如果您愿意,可以按照这种方式查看。

P.S。如果您将所有作品保存为PSD文件,您始终可以使用Adobe的ExtendScript将各个图层的导出编写为单独的PNG文件,只需一次按键...

PPS ImageMagick 可能从PSD文件本身提取图层,但是我从文件中提取了图层并且它们的大小不同背景图像,我找不到相对于它的正确位置。如果您对图层的创建方式有所了解,以及它们是否可以制作相同尺寸并与背景对齐,则可以使用layer-n.png

替换示例中的PhotoshopFile.psd[n]

P.P.P.S。如果您想在.NET中执行此服务器端,您应该查看可在此处找到的ImageMagick的.NET库:https://magick.codeplex.com/。如果您需要帮助将上述命令翻译成C#,您可以在那里的讨论页面上提问。