- 索引
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
|
和一個白色圓圈(-draw 命令中的半透明錯誤在此處發生)
magick -size 200x200 xc:none -fill "#FFFFFF" \
-draw "circle 125,125 73,73" circle_white.png
|
如果發生錯誤,您將看到純白色圓圈的深色、接近黑色的邊緣。
使其半透明
magick circle_white.png -fill "#FFFFFF80" -opaque "#FFFFFF" circle.png
|
警告:這不是產生半透明白色圓圈的實際範例,不應視為最佳方法。在矩形上覆蓋圓圈(覆蓋中的半透明錯誤在此處發生)
magick composite circle.png rectangle.png alpha.png
|
如果錯誤在此處發生,結果應該是雖然覆蓋的灰色矩形變為較淺的顏色,但半透明白色圓圈的其餘部分變為灰色,而不是保持不變。
將上述結果覆蓋在白色背景上,以便我們可以在 IE 等瀏覽器上看到結果。
magick composite alpha.png -size 200x200 xc:white result.png
|
上面的最終結果應該是僅在圓圈重疊的地方稍微變白灰色矩形。在任何其他地方,白色圓圈都應該消失(白色上的半透明白色會變成白色!)。
如果錯誤仍然存在,您將看到一個灰色圓圈,並且由於「-draw
」命令中存在錯誤,圓圈的邊緣將顯得更暗,而不是漸變成白色背景。
使用 IM 獲得正確結果
這就是上面圖像應有的樣子
注意:由於使白色圓圈半透明的方式不準確(使用「
-fill
」和「
-opaque
」),因此深色矩形和覆蓋圓圈之間存在一條細的幾乎是白色的“邊框”。這不是錯誤,只是圖像處理不正確。
如果我改用這個(更正確的)命令生成半透明圓圈(僅在 IMv7 中有效)...
magick circle_white.png -channel A -fx A/2 circle.png
|
那麼我們將在最終結果中看不到細的白色邊框。