3枚以上の画像をアルファブレンディングするには

解決


いおり  2001-06-29 18:23:02  No: 111  IP: [192.*.*.*]

PAPYさん、お久しぶりです。以前ボリュームコントロールについて質問したいおりです。
今回は画像処理について質問します。

複数のビットマップ画像(例えば、1枚目が、
256*256サイズの真っ白なビットマップ、
2枚目が同じサイズのビットマップで真中に赤い丸(背景は真っ白)、
3枚目が同じサイズのビットマップで真中に黄色の四角(背景は真っ白))があったときに、
ある任意のOpacityを設定してアルファブレンディングすると、2枚目と3枚目に描かれている赤い丸や黄色の四角がうっすら見えるようにしたいのですが、実行すると、まったくアルファブレンディングされていない状況で、真っ白の画像が出ます。

PS:この内容は、平行投影のレイキャスティング法とでも言えばよろしいんでしょうか。。。

どなたかお助けください。
よろしくお願いします。

編集 削除
にしの  2001-06-30 01:05:40  No: 112  IP: [192.*.*.*]

256*256程度の小さなビットマップが3枚なら、単純に各ビットマップの色情報を読み取って、合成した色情報を新しいビットマップに描けばよいと思います。
自宅にはDelphiがないのでC++Builderで試しましたが、きちんと合成されました。
白一色と、赤い丸と黄色い四角の場合、丸と四角が重なった部分はオレンジ色っぽくなりました。

もし画像数が多かったり、画像サイズが大きいようでしたら、TABitmapというコンポーネントがよさそうです。

Delphian Worldからどうぞ。
http://home1.infonia.ne.jp/~delphian/delphi/index.html

編集 削除
いおり  2001-07-03 09:08:35  No: 113  IP: [192.*.*.*]

にしのさん、どうもありがとうございました。とりあえず、コンポーネントを使わずに(描画速度は別として)できました。

編集 削除