0

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

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

有没有一种方法可以有效地做到这一点,而无需遍历所有像素并调用getPixel/ setPixel

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

但是,将每个像素增加 1 可能更棘手。我可以创建一个具有所有0x000001值的图像,并使用.draw()它在每一帧中添加它,但使用BlendMode.ADD每个通道的剪辑0xFF,只允许 255 个不同的年龄值。

有什么建议可以有效地解决这个问题吗?我可以应用 a ColorTransformorColorMatrixFilter到整个图像吗?

4

1 回答 1

1

编写一个自定义 PixelBender 过滤器,这将比迭代像素快得多:

如果您以前从未使用过,这可能会有一些用处:

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

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

于 2012-10-19T15:57:13.080 回答