使用Imagick裁剪两个透明的png图像会产生不同的结果

时间:2012-04-11 13:26:10

标签: linux command-line imagick

裁剪两个png文件时,我的结果不同。

使用convert -version Imagick版本:

  • 版本:ImageMagick 6.6.5-10 2010-11-26 Q16
  • 版权:版权所有(C)1999-2010 ImageMagick Studio LLC
  • 功能:OpenMP

使用identify的两个文件:

  • works.png PNG 1218x610 1218x610+0+0 8-bit DirectClass 755KB 0.000u 0:00.000
  • doesntwork.png PNG 70x70 70x70+0+0 8-bit DirectClass 1.64KB 0.000u 0:00.000

我正在使用此命令:

convert <original>.png -crop 50x50+0+0 <target>.png

问题是works.png 100%正确,而doesntwork.png是黑色正方形。

原始图像似乎都相同 - 并且在windows 7上正确显示。

图片:

works.png

enter image description here

doesntwork.png

enter image description here

2 个答案:

答案 0 :(得分:0)

如果发布了两张图片,这似乎可能是工具做了他们被告知的事情而不是预期的事情。

在上面的鲨鱼图像上使用-crop 50x50+0+0会产生完全透明的50 x 50图像,因为鲨鱼图像左上角(+0+0)的50 x 50像素块是完全透明的。使用-crop 50x200+0+0也会抓住鲨鱼尾巴的尖端。 -crop 50x50+950+250引人注目。

这一切是否与您的结果相符?

答案 1 :(得分:0)

使用convert -version ImageMagick 6.4.0 04/17/08 Q16(这是cygwin下的“当前”版本),在Windows XP SP3上通过cygwin运行。

这可能是您特定版本的ImageMagick中的错误。鲨鱼works.png是带有alpha(4个8位通道)的全彩色图像。 doesntwork.png是1位黑白图像,具有8位alpha,并且通过改变alpha来完成着色。在我看来这是一种相当罕见的格式,所以我可以想象一个漏洞转入转换代码。

您可以尝试先将图像转换为真彩色。