FlexのImageでColorMatixFilterを使用しています。私は本当に私がフィルタから必要としたいことを得ることに近づいています。基本的には、ユーザーがアップロードするPNGファイルです。透明でないすべてのピクセルを黒色にしたいとします。私はすでに "明るさ"を設定する関数を持っているので、-1000のような本当に大きな負の数を通過するだけですが、問題は問題ありません。後で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としてどのようにエンコーディングしているかに関係しています。多くのエンコーダは、このプロセスでアルファチャンネルを失います。それについての詳細を教えてください。また、クライアントでエンコードしないのはなぜですか? ImageSnapshotはpngエンコードを行うことができます。 –
Jacob Eggersのように、透明ピクセルがアルファチャンネルを失うと、白が通常はデフォルトの色になります –