ImageMagick - 将图像的白色转换为另一种颜色,保持透明度并排除黑色
ImageMagick - convert an image's white colors to another, keeping transparency and excluding black
我有一大堆图片。默认值是白色,应该修改为特定的十六进制代码,图像中存在的任何黑色都保持不变(因为它表示符号)。白色通常是部分透明的,如果是的话应该保留。任何完全透明的区域都应该保持透明。
我正在使用 Powershell 进行批处理 -- $ColorHex
指的是数组中的十六进制值。生成的文件应该与生成的颜色匹配。
Original Image Example
Green (#009900) - colorize 70%
magick ".\FFFFFF.png" -fuzz 5% -fill "#$ColorHex" -opaque "#FFFFFF" -colorize 70% "$ColorHex.png"
Green (#009900) - fuzz 75% -opaque
magick convert ".\FFFFFF.png" -fuzz 75% -fill "#$ColorHex" -opaque "#FFFFFF" "$ColorHex.png"
通常这是我想要的,但在转换为绿色时不保留白色的部分透明度并且在黑色边缘处粗糙(希望它被锯齿)。
我有大量图像要以这种方式处理,非常感谢任何帮助。
也许这就是您在 Imagemagick 7 中想要的。在这里,我制作了图像的内存副本。然后我关闭 alpha 并处理所有纯白色。然后我从内存副本中提取 alpha 通道并将其放回生成的绿色图像上。
输入:
Unix 语法:
magick nCijg.png +write mpr:img \
-alpha off -fill "#009900" -opaque "#FFFFFF" \
\( mpr:img -alpha extract \) \
-alpha off -compose copy_opacity -composite \
result.png
Windows 语法:
magick nCijg.png +write mpr:img ^
-alpha off -fill "#009900" -opaque "#FFFFFF" ^
( mpr:img -alpha extract ) ^
-alpha off -compose copy_opacity -composite ^
result.png
结果:
如果你想包含非白色来填充白色中的一些小孔,你可以包含一些绒毛。
我有一大堆图片。默认值是白色,应该修改为特定的十六进制代码,图像中存在的任何黑色都保持不变(因为它表示符号)。白色通常是部分透明的,如果是的话应该保留。任何完全透明的区域都应该保持透明。
我正在使用 Powershell 进行批处理 -- $ColorHex
指的是数组中的十六进制值。生成的文件应该与生成的颜色匹配。
Original Image Example
Green (#009900) - colorize 70%
magick ".\FFFFFF.png" -fuzz 5% -fill "#$ColorHex" -opaque "#FFFFFF" -colorize 70% "$ColorHex.png"
Green (#009900) - fuzz 75% -opaque
magick convert ".\FFFFFF.png" -fuzz 75% -fill "#$ColorHex" -opaque "#FFFFFF" "$ColorHex.png"
通常这是我想要的,但在转换为绿色时不保留白色的部分透明度并且在黑色边缘处粗糙(希望它被锯齿)。
我有大量图像要以这种方式处理,非常感谢任何帮助。
也许这就是您在 Imagemagick 7 中想要的。在这里,我制作了图像的内存副本。然后我关闭 alpha 并处理所有纯白色。然后我从内存副本中提取 alpha 通道并将其放回生成的绿色图像上。
输入:
Unix 语法:
magick nCijg.png +write mpr:img \
-alpha off -fill "#009900" -opaque "#FFFFFF" \
\( mpr:img -alpha extract \) \
-alpha off -compose copy_opacity -composite \
result.png
Windows 语法:
magick nCijg.png +write mpr:img ^
-alpha off -fill "#009900" -opaque "#FFFFFF" ^
( mpr:img -alpha extract ) ^
-alpha off -compose copy_opacity -composite ^
result.png
结果:
如果你想包含非白色来填充白色中的一些小孔,你可以包含一些绒毛。