0

フレックスで画像の明るさとコントラストの変更を実装するにはどうすればよいですか

明るさやコントラストを追加したり減らしたりするためのツールを開発する必要があります

4

2 に答える 2

1

ColorMatrixFilter を使用し、以下のマトリックスをそのマトリックス プロパティに割り当てます

var contrastAdj:ColorMatrixFilter = ColorMatrixFilter(filters.getItemAt(0));
        contrastAdj.matrix = getContrastMatrix(value);

    private static function getContrastMatrix(value:Number):Array
    {

    value /= 100;
    var s: Number = value + 1;
    var o : Number = 128 * (1 - s);
    var m:Array = new Array();
    m = m.concat([s, 0, 0, 0, o]);  // red
    m = m.concat([0, s, 0, 0, o]);  // green
    m = m.concat([0, 0, s, 0, o]);  // blue
    m = m.concat([0, 0, 0, 1, 0]);  // alpha

    return m;
}

輝度マトリックスの場合、この関数を使用します

private static function getBrightnessMatrix(value:Number):Array
{
                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 m;
        }

-100 から 100 までの値を関数に渡します。

于 2013-04-04T12:47:51.960 に答える
1

flash.geom.ColorTransform少なくともプレビューのために、画像に対して使用することがあります。画像のピクセルを変更する必要がある場合は、必要なことを行う Pixel Bender シェーダーを使用することをお勧めします。ただし、そのシェーダのパラメータを変更する場合は、バックアップ コピーが必要になることに注意してください。

于 2013-04-04T12:17:12.883 に答える