ソフトウェア設計段階と、6割くらい作り上げてきた段階で、見通しが異なっていることによく気付かされる。

 

 気楽に考えていた画像処理も、PNG形式の画像ファイルを目の前にすると

「あー、こうしないとダメだ」

と方針転換させられた。

 

 デスクトップの背景と、PNG画像の透明部分を、上手く重ね合わせるのはパソコンが大変。

 それ自体は可能であるが、ミリ秒単位で計算しながら描画するのは、パソコンの負担が大きい。

 

 結局、そんな「芸」を求めるより、シンプルさの方が大事なのだ。

 

 半透明にするのは、プログラミング的には、アルファブレンドと言うらしい。

 
/****************************************************************

アルファブレンドの式
BYTE rgbBack : 背景色の要素 (0 ~ 255)
BYTE rgbSrc  : 重ね合わせる画像の要素 (0 ~ 255)
BYTE a : 不透明度 (0 ~ 255)

   ※ A = a/255  :  アルファブレンド (0.00 ~ 1.00) //
                     A = 0.00 (a = 0)   : 透過
                     A = 1.00 (a = 255) : 完全に重ね合わせる
結果 rgb = A * rgbSrc + (1 - A) * rgbBack
****************************************************************/

 

 結局、PNG形式の全てのピクセルについて、不透明度を取り出して変換しなければならなくなった。

 ただ、一度だけでいいので、その程度であれば今どきのパソコンなら一瞬であろう。