質問

アルファ チャネルを持つ 2 つの BitmapData オブジェクトがあります。アルファを含む各チャンネルに対して max(channel_image_one, channel_image_two) を使用して、それらを 1 つに結合したいと思います。この結果を達成する簡単な方法はありますか?

役に立ちましたか?

解決

私は道というアルファシャネルをマージするのBitmapData方法はまっすぐ進むないと思います。 )RGBは多分引き分け()ブレンドモードを適用するの助けを借りて行うことができますが、私はあなたがシャネルにつき厳格最大を必要とする場合、それがうまくいくとは思わない。

また、あなたは PixelBender にこのタスクを実行するためのシェーダ感謝を作成することができます。これは、操作の種類に最適なツールです。

遅いパフォーマンスでなく、より速く、セットアップにあなたのPBに使用されていない場合は、単に反復/ピクセルBitmapData.getPixel32と一つ一つを書く/比較することができ()/ setPixel32()。 あなたはそのために行く場合は、ブーストパフォーマンスにBitmapData.lock()/アンロック()を使用して考えます。

他のヒント

max(image_one,image_two) が必要な場合は、 明るくする ブレンドモード。

ここからの抜粋です Foundation ActionScript 3.0 の画像効果 :

public function lighten(topPixel:uint, bottomPixel:uint):uint{
   return Math.max(topPixel,bottomPixel);
}

必要なファイルは、第 2 章のフォルダーからファイルとして入手できます。 ソースzip.

テオのアドバイスを活用して、

  • ロック()
  • for ループ
  • ロック解除()

BitmapData を使用して速度を上げるか、PixelBender を使用してください。どうやらそれによると アドビ, Flash Player ユーザーの 90% 以上がすでにバージョン 10 を使用しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top