我對使用alpha值的緩衝區進行imagecopyresampled處理有問題。顯然該算法在濾波之前預先乘以像素阿爾法值,這導致黑色邊框的圓形物體。在php中imagecopyresampled - 預乘alpha處理問題
重現步驟:
拍攝影像是在RGB部分全白和具有(抗鋸齒!!)白色圓圈(去轉了一圈,沒有與方!)上黑色的背景(所以alpha部分將有大部分完全白色和全黑色的像素,以及由於抗鋸齒在圓的邊界上的一些漸變像素 - 這意味着輸入圖像不是預乘 - 它是直線/無匹配,因爲圖像的RGB部分是完全白色的)。
通過按比例縮小一半的圖像使用imagecopyresampled
撰寫的結果在全白圖像
我會期待什麼: 全白圖像
我能得到什麼: 灰色邊框圍繞圓的輪廓
我很確定這是由於縮放算法中的預乘alpha(該算法將像素alpha值與其rgb值相乘以計算新的rgb值 - 因此白色像素將變爲灰色)
有沒有人知道workarround這個?
我們剛剛嘗試過,但使用imagick alpha通道似乎完全丟失 – Mat 2012-02-24 20:39:41