ソフトウェア設計段階と、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形式の全てのピクセルについて、不透明度を取り出して変換しなければならなくなった。
ただ、一度だけでいいので、その程度であれば今どきのパソコンなら一瞬であろう。