编辑分层的 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文件:
您可能想尝试混合模式,我只是尝试了一些看起来隐约合眼的模式。如果您想要所有可用混合模式的列表,您可以这样做:
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# 时需要帮助,您可以在讨论页面上提问。