ページ 11

画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 05:16
by ちぃす
配列に画像を読み込んで擬似gif的な感じに画像を表示していたのですが、
何故か透過が効かなくなっていました・・・

コード:

int ThunderBoard[19];
LoadDivGraph("画像名",19,5,4,96,96,ThunderBoard);
int ThunderBoardCount = 0;
//以下ループ
DrawGraph(0,0,Background,TRUE);
DrawGraph(0,0,ThunderBoard[ThunderBoardCount],TRUE);
if(ThunderBoardCount < 19){
ThunderBoardCount ++;
}
if(ThunderBoardCount == 19){
ThunderBoardCount = 0;
}
画像の背景色は黒です。
記憶の中では、少し前までは普通に透過されていたと思うのですが・・・
何か解る方がいらっしゃったら教えてくださいorz

Re: 画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 05:40
by h2so5
画像自体に透過情報が含まれていると透過色が反映されなくなります。

Re: 画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 05:53
by ちぃす
ご意見ありがとうございます(_ _)
試しにペイントで開いて、保存すると「透過情報が消えます」的な事が書かれていました。
確認で画像の情報を見てみましたが、bitの深さは24ということで透過情報はありません。
もしかしたら、基本的な設定で変わったりするのでしょうか・・・?
因みに、↓が使用している画像です。画像

Re: 画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 06:12
by h2so5
そもそもこの画像は透過して使うものなのでしょうか?
背景が黒になっているところを見ると加算合成して使うための素材に見えますが。

Re: 画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 06:19
by ちぃす
プログラミングを始めたのがつい最近なんですけど、
今までは画像の透過の値をTUREにしていたら勝手に透過されていました。
加算ブレンドを試してみたら、今までと同じように表示されました!
本当にありがとうございました(_ _)

Re: 画像が透過されなくなってしまいました・・・

Posted: 2012年7月01日(日) 18:05
by ISLe
画像ファイルに完全不透明のαチャンネルが含まれていますね。
ビットの深さと透過情報が含まれるかどうかは関係ありません。

透過しなくなったのは、
・いつのまにか画像ファイルにαチャンネルが追加されてカラーキーが効かなくなった
・いつのまにかDXライブラリが完全不透明のαチャンネルを無視しなくなってカラーキーに切り替わらなくなった
といったところでしょうか。

加算ブレンドは黒以外の部分も透けてしまいますけど素材的にはそのほうが良いのかもしれません。

不要なαチャンネルを削ると画像ファイルのサイズを減らせます。そこはお好みで。