增加BitmapData中的每个像素

时间:2012-10-19 14:28:10

标签: flash colors bitmap

让我解释一下我想要实现的目标。我想创建一种图像的“年龄图”。这意味着每一帧

  • 每个像素的值增加1。
  • 修改后的像素设置为0.

有没有办法有效地执行此操作而不循环遍历所有像素并调用getPixel / setPixel

为了重置修改后的像素,我正在考虑使用bitmapData.draw(),并结合使用blendModes / colorTransform;例如使用0 colorTransform在年龄图上绘制形状,保留形状但使形状变为黑色,即0x000000

然而,将每个像素递增1可能更棘手。我可以创建包含所有0x000001值的图片,并使用.draw()每帧添加它,但使用BlendMode.ADD剪辑0xFF处的每个频道,只允许255个不同的年龄值。

有效解决此问题的任何建议?我可以在整个图片中应用ColorTransformColorMatrixFilter吗?

1 个答案:

答案 0 :(得分:1)

编写自定义PixelBender滤镜,这比迭代像素要快得多:

如果您以前从未使用过,这可能会有所帮助:

http://tv.adobe.com/watch/adc-presents/pixel-bender-custom-filters/

我自己对PB有点生疏,抱歉我无法提供更具体的建议,但知道这是可能的,GPU支持意味着它足够快,可以使用。