2013-04-04 95 views
0

我如何能实现对图像中弯曲的亮度和对比度的变化增加对比度和亮度的图像在柔性

我需要开发一个工具,增加亮度或对比度,减少它

+0

你尝试过什么?你怎么了?显示图像?应用数学公式? – 2013-04-04 12:14:26

+0

需要动态改变亮度和对比度的图像组件 – Nithil 2013-04-04 12:16:43

回答

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; 
} 

亮度矩阵使用此功能-100之间至100

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; 
     } 

值传递给函数。

+0

感谢@Asad详细解释 – Nithil 2013-04-05 04:15:01

+0

你可以使用Pixel Bender的作为@Vesper建议,以加快图像处理加载的图像。对于一个单一的形象,我认为这些功能就足够了。 – Asad 2013-04-05 07:14:37

1

您可以使用flash.geom.ColorTransform反对一个图像,至少用于预览。如果您需要将您的图像的像素变化,我会说使用Pixel Bender着色器,将你所需要的。但是请注意,您将需要一个备份副本,你应该渴望改变着色器的参数。

+0

感谢@vesper我会考虑这个 – Nithil 2013-04-04 12:18:51

相关问题