我正在尝试使用简单的命令来调整图像大小并覆盖原始图像:
mogrify -resize 80% *
我的源图像是半透明的 PNG,恰好是灰度的。调整大小操作有效,但会使图像变暗。
此版本以前在另一台机器(Ubuntu 12.04,带)上运行正常ImageMagick 6.6.9-7 2014-03-06
,但在较新的机器(Ubuntu 14.04,带ImageMagick 6.7.7-10 2014-03-06
)上却出现故障。截至本文发布时,出现故障的版本是 Ubuntu 14.04 存储库中的最新版本。
由于 ImageMagick 是一个可编写脚本的工具,因此这是一个不幸的回归,应该通过单元测试来发现。我要去检查我的脚本图像工作流程。
仅供参考-显然转换工具也受到了影响。
答案1
添加一个-type truecolorAlpha
可以解决这个问题。
有可能找到解释与原始文件的真彩色 PNG 类型以及调整大小操作前后的不同调色板大小有关。
本质上,这是一个错误,因为 PNG(颜色类型 6)的 iCCP 配置文件被错误识别为 sRGB,并且可能在类似情况下发生。
答案2
我发现了一个博客文章通过指定输出格式来显示解决方法。对我来说,我想要半透明的 PNG,所以最好的选择是添加选项-define png:format=png32
:
mogrify -define png:format=png32 -resize 80% *
(博客建议这样做,-define png:format=png24
但是这似乎将输出 alpha 限制为 1 位。)