代码之家  ›  专栏  ›  技术社区  ›  Joshua

在Flex中过滤除特定颜色以外的所有图像

  •  1
  • Joshua  · 技术社区  · 15 年前

    假设我在Flex中有一个图像,我想对它进行过滤,这样只有绿色的像素是可见的。。。

    例如,此图像:

    alt text http://www.LiquidFeline.com/Images/Circles.png

    alt text http://www.LiquidFeline.com/Images/Circles2.png

    如何在Actionscript/Flex中实现这一点?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Juan Pablo Califano    15 年前

    你可以很容易地用 threshold BitmapaData类的方法。

    基本上,复制图像。然后使每个未通过阈值测试的像素完全透明。这种情况下的测试可能是 pixel != your shade of green .

    示例代码:

    var color:uint = 0xff22b14c;
    var bmd:BitmapData = new BitmapData(image.width,image.height,true);
    bmd.draw(image);
    bmd.threshold(bmd,new Rectangle(0,0,image.width,image.height),new Point(0,0),"!=",color,0,0xffffffff);
    addChild(new Bitmap(bmd));
    

    再多做一点工作,你就可以分离出颜色的范围,但是对于你的例子中的纯色,这应该可以做到。

        2
  •  0
  •   Robusto    15 年前

    您可以尝试将chromakey效果应用于Bitmap和BitmapData类。请参见上的教程 http://cnx.org/content/m34463/latest/

    推荐文章