ImageMagick 5.5.7 --
半透明绘制和叠加错误 -- 已修复

索引
ImageMagick 示例前言和索引
已知和已修复错误索引
演示 ImageMagick 5.5.7 及更早版本中发现的透明黑色背景上的半透明白色错误。这些错误在 ImageMagick 版本 6 的开发过程中得到了修复。

此页面上的背景图案是为了选择,以便任何透明度都可以在理解 PNG 透明度的 Web 浏览器(例如基于 Mozilla 的浏览器)中可见。

此页面供仍然可能需要处理此错误的旧版 IM 用户参考。当/如果错误得到修复时,此页面上的示例不会重新创建。


生成一个不透明的矩形

    magick -size 200x200 xc:none -fill "#808080" \
            -draw "rectangle 0,0 150,100" rectangle.png

[IM Output]

和一个白色圆圈(-draw 命令中出现半透明错误)

    magick -size 200x200 xc:none -fill "#FFFFFF" \
            -draw "circle 125,125 73,73" circle_white.png

[IM Output]

如果出现错误,您将看到纯白色圆圈周围有深色,接近黑色的边缘。

使其半透明

    magick circle_white.png  -fill "#FFFFFF80" -opaque "#FFFFFF" circle.png

[IM Output]

警告:这不是生成半透明白色圆圈的实用示例,不应将其视为最佳方法。

将圆圈叠加在矩形上(叠加中出现半透明错误)

    magick composite circle.png rectangle.png alpha.png

[IM Output]

如果此处出现错误,结果应该是,虽然叠加的灰色矩形颜色变浅,但半透明白色圆圈的其余部分会变成灰色,而不是保持不变。

将以上结果叠加到白色背景上,以便我们可以在 IE 等浏览器上看到结果。

    magick composite alpha.png  -size 200x200 xc:white  result.png

[IM Output]

上面最终结果应该是灰色矩形在圆圈重叠处略微变白。其他任何地方,白色圆圈都应该消失(半透明白色在白色上显示为白色!)。

如果存在错误,您将看到一个灰色圆圈,并且由于“-draw”命令中存在错误,圆圈的边缘将显得更暗,而不是渐变到白色背景中。


IM 的正确结果

以上图像应如下所示

[IM Output]

注意:由于白色圆圈变为半透明的方式不准确(使用“-fill”和“-opaque”),因此在深色矩形和叠加圆圈之间存在一条几乎是白色的细边框。这不是错误,只是图像处理不正确。

如果我使用此(更正确的)命令(仅在 IMv7 中有效)生成半透明圆圈...

    magick circle_white.png  -channel A -fx A/2  circle.png

那么我们在最终结果中将看不到细白边框。
[IM Output]


创建日期:2003 年 12 月 15 日
更新日期:2005 年 4 月 28 日
作者:Anthony Thyssen,<Anthony.Thyssen@gmail.com>
示例使用以下版本生成:[版本图像]
URL:https://imagemagick.org.cn/Usage/bugs/trans_bug/