ImageMagick 5.5.7 --
半透明繪製和覆蓋錯誤 - 已修復

索引
ImageMagick 範例前言和索引
已知和已修復錯誤索引
在 ImageMagick 5.5.7 及更早版本中發現的半透明白色在透明黑色上的錯誤示範。這些錯誤已在 ImageMagick 版本 6 開發期間修復。

選擇此頁面上的背景圖案,以便在了解 PNG 透明度的網路瀏覽器(例如基於 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>
使用以下工具生成的範例:[版本圖像]
網址:https://imagemagick.dev.org.tw/Usage/bugs/trans_bug/