我對Flex中的圖像使用ColorMatixFilter。我真的很接近想要我需要的過濾器。基本上用戶上傳的任何PNG文件我希望所有不透明的像素都是黑色的。我有一個函數,它已經設置了「亮度」,所以我只是通過一個非常大的負數,比如-1000,它可以完成這項工作,但問題是任何像素都有任何alpha,比如說0.9或者更低稍後將我的PNG文件編碼到服務器上時顯示爲白色。如何爲不透明的所有像素着色
這裏是我目前使用的
public static function setBrightness(value:Number):ColorMatrixFilter
{
value = value * (255/250);
var m:Array = new Array();
m = m.concat([1, 0, 0, 0, value]); // red
m = m.concat([0, 1, 0, 0, value]); // green
m = m.concat([0, 0, 1, 0, value]); // blue
m = m.concat([0, 0, 0, 1, 0]); // alpha
return new ColorMatrixFilter(m);
}
我想所有的像素是純黑色,除非像素是完全透明的,不知道如何調整值以獲取了它的代碼。
我測試了'ColorMatrix',它看起來對我來說是正確的。問題可能與你如何編碼爲png有關。許多編碼器在這個過程中失去了alpha通道。你能提供更多的細節嗎?另外,爲什麼不在客戶端進行編碼? ImageSnapshot可以做png編碼。 –
像Jacob Eggers一樣,當透明像素失去alpha通道時,白色通常是默認的顏色。 –