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>
生成された例: [version image]
URL: https://imagemagick.dokyumento.jp/Usage/bugs/trans_bug/