0

私が達成しようとしていることを説明しましょう。画像の一種の「年齢マップ」を作成したい。これは、すべてのフレームが

  • 各ピクセルの値は 1 ずつ増加します。
  • 変更されたピクセルは 0 に設定されます。

getPixelすべてのピクセルをループして/を呼び出すことなく、これを効率的に行う方法はありsetPixelますか?

私が使用することを考えている変更されたピクセルをリセットするにはbitmapData.draw()、blendModes/colorTransform; の組み合わせを使用します。たとえば、0 colorTransform を使用して年齢マップ上に形状を描画し、形状を保持しますが、形状を黒にし0x000000ます。

ただし、各ピクセルを 1 ずつインクリメントするのは、よりトリッキーかもしれません。0x000001すべての値を含む画像を作成し、.draw()それを各フレームに追加するために使用できますが、BlendMode.ADD各チャンネルのクリップを使用すると0xFF、255 の異なる年齢値しか許可されません。

これを効率的に進めるための提案はありますか?画像全体にColorTransformまたはを適用できますか?ColorMatrixFilter

4

1 に答える 1

1

カスタム PixelBender フィルターを作成します。これは、ピクセルを反復処理するよりもはるかに高速です。

これまでに使用したことがない場合は、これが役立つ場合があります。

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

私自身、PB には少し慣れていません。申し訳ありませんが、これ以上具体的なアドバイスを提供することはできませんが、これは可能であり、GPU をサポートしているため、十分に高速で使用できることを意味します。

于 2012-10-19T15:57:13.080 に答える