将所有不透明像素转换为白色,保持透明度
Convert all opaque pixels to white, keeping transparency
我有一堆 png 绘图,在透明背景上颜色和 alpha 略有不同。
我想将非完全透明像素转换为白色,同时保持局部 alpha。在 Photoshop 中,我可以通过单击“锁定透明像素”图标,然后用白色填充整个图像来做到这一点。
我想自动执行此过程并考虑在 Ubuntu 中使用 ImageMagick(运行 在我的 Windows 10 的 WSL 上;convert -version
是 6.9.10。 )
到目前为止,我已经用谷歌搜索了一段时间,但运气不佳。找到 ,但它对我不起作用,它因以下错误而退出并生成全白图像:
convert-im6.q16: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG `out.png' @ warning/png.c/MagickPNGWarningHandler/1667.
我在其他地方发现 -strip
标志可以抑制此警告,但输出仍然是全白图像。
有趣的是,如果我指定非白色,结果几乎就是我需要的,当然颜色不会是白色。 (例如 convert original.png -fill yellow -colorize 100 out.png
)
也许这就是您在 ImageMagick 6 中想要的。使用 -fill 和 +opaque。
透明图片:
convert logot.png -fill white +opaque none logot_white.png
您必须下载每张图片才能看到透明的图片,因为本论坛使用白色背景。
如果在 Imagemagick 7 上,将“转换”更改为“magick”
这是真实的 PEBKAC 情况。我只需要 -strip
标志,因为我认为是 all-white 的图像实际上已正确涂成白色并保留了原始透明度数据,只有图像缩略图在我的计算机上生成不正确。
我有一堆 png 绘图,在透明背景上颜色和 alpha 略有不同。
我想将非完全透明像素转换为白色,同时保持局部 alpha。在 Photoshop 中,我可以通过单击“锁定透明像素”图标,然后用白色填充整个图像来做到这一点。
我想自动执行此过程并考虑在 Ubuntu 中使用 ImageMagick(运行 在我的 Windows 10 的 WSL 上;convert -version
是 6.9.10。 )
到目前为止,我已经用谷歌搜索了一段时间,但运气不佳。找到
convert-im6.q16: profile 'icc': 'RGB ': RGB color space not permitted on grayscale PNG `out.png' @ warning/png.c/MagickPNGWarningHandler/1667.
我在其他地方发现 -strip
标志可以抑制此警告,但输出仍然是全白图像。
有趣的是,如果我指定非白色,结果几乎就是我需要的,当然颜色不会是白色。 (例如 convert original.png -fill yellow -colorize 100 out.png
)
也许这就是您在 ImageMagick 6 中想要的。使用 -fill 和 +opaque。
透明图片:
convert logot.png -fill white +opaque none logot_white.png
您必须下载每张图片才能看到透明的图片,因为本论坛使用白色背景。
如果在 Imagemagick 7 上,将“转换”更改为“magick”
这是真实的 PEBKAC 情况。我只需要 -strip
标志,因为我认为是 all-white 的图像实际上已正确涂成白色并保留了原始透明度数据,只有图像缩略图在我的计算机上生成不正确。