替换所选像素

时间:2013-04-11 06:26:42

标签: actionscript-3 flash action

如何替换图像的选定像素?我使用了设置像素并获得像素概念但没有获得所需的效果。                                                                                   http://www.digital-photography-school.com/wp-content/uploads/2009/07/before-after.jpg

var s_color = 0x0083C7;
color_picker.addEventListener(ColorPickerEvent.CHANGE, changeColor);
function changeColor(ColorPickerEvent)
{
var _color = color_picker.selectedColor.toString(16);
var color = String("0x"+_color);

for (var j = 0; j <m_inputImage.width; j++)
{
    for (var k = 0; k < m_inputImage.height; k++)
    {

        if (m_inputImage.getPixel(j,k)== s_color)
        {
            m_inputImage.setPixel(j,k,color);
        }

    }
}
s_color = color;
}

我想要类似的效果。 请指导我。

2 个答案:

答案 0 :(得分:1)

这不是BitmapData的工作,您应该使用Pixelbender。 http://www.adobe.com/devnet/flash/articles/pixel_bender_basics.html

你可以在这里找到所有着色器,有很多色调/饱和度和颜色处理过滤器,所以选择一个最适合你的。 http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=26&loc=en_us

答案 1 :(得分:0)

我会用Photoshop而不是Flash来达到你想要的效果。

然而,Photoshop有点昂贵,所以我会将Bitmap类与BitmapData类结合使用,并使用算法运行每个像素并检查一定的红色和转换阈值它到了正确的黄色阈值。如果您要发布已编写的代码,我可以添加它,但我不打算在下一个小时写一个例子。