各種ブレンド(半透明)
(16bitカラー以上必須、32bitカラー推奨)

ゲームなどでよく使用されるブレンド(半透明)を実現します。

半透明の種類と実現方法

Win98以降には専用APIが用意されているようですが、ここでは自前でエンジンを作成します。
画像1の点(x,y)の色をRGBごとに分けたものを(r1,g1,b1)、画像2の点(x,y)の色をRGBごとに分けたものを(r2,g2,b2)としたとき合成後の点(x,y)の色(R,G,B)は以下のようになります。

名称

内容

計算方法

平均ブレンド

画像1と画像2を1:1の割合で合成します

R=(r1+r2)\2
G=(g1+g2)\2
B=(b1+b2)\2

アルファブレンド

画像1と画像2をα:1-αの割合で合成します

R=r1*α+r2*(1-α)
G=g1*α+g2*(1-α)
B=b1*α+b2*(1-α)

加算ブレンド

画像1と画像2の色を足し合わせます

R=r1+r2
G=g1+g2
B=b1+b2
(但しR<255,G<255,B<255)

Brightenブレンド

画像1と画像2の各点のRGBごとの明るいほうをとり合成します

-

Darkenブレンド

画像1と画像2の各点のRGBごとの暗いほうをとり合成します

-

サ ン プ ル プ ロ グ ラ ム

GetDIBites,SetDIBits等のAPIを使用しているのでわりに高速に変換できます。
(256Pixel*100Pixel*256色のビットマップではK6-200MHzで12fps程度(80msec)、そのうち計算時間は20msec程度でした。
(ネイティブコンパイル時)

Sample Program Download (72KB)

トップに戻る
Visual Basicワンポイントテクニック目次に戻る

楽天モバイル[UNLIMITが今なら1円] ECナビでポインと Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!


無料ホームページ 無料のクレジットカード 海外格安航空券 解約手数料0円【あしたでんき】 海外旅行保険が無料! 海外ホテル