2017-09-13 21 views
0

CSplashというC++クラスを使用しています。これは、画面中央にスプラッシュウィンドウを表示するために使用されます。ビットマップファイルタイプのみを読み込むように設計されています。透明な背景を持つBMPをRGB透過カラーキーで表示することができます。BMPの透明なカラーキーが正しく表示されない


私はPNG画像を持っています。

Transparent PNG

Iは、Photoshopで画像を開いて、透明なキーとして背景色(50、200、25)を加えました。

Image Green BG

私はその後、私のプロジェクトでのビットマップファイルとしてこのイメージを保存します。

enter image description here

私は、ファイルが残っています:

CSplash splash = CSplash("PowerUp.bmp", RGB(50, 200, 25)); 
splash.WindowProc(hWnd, uMsg, wParam, lParam); 
splash.ShowSplash(); 
splash.DoLoop(); 
PowerUp.bmp

私のC++コードでは、私は次のコードを持ってWM_NCCREATE上とに記載されたクラスをインポート

プログラムを実行すると、スプラッシュイメージが透明な背景で表示されますが、期待どおりに表示されません。結果には、アイコンの周りに透明な色が残っています。私はそれが正確に透過原稿のPNGファイルのように見えるように、この問題を解決するにはどうすればよい

Splash Result

+0

アルファチャンネルの2004 bmpファイルは非標準フォーマットでした。おそらく、あなたは新しいCSplashを検索する方が良いです:)そして、 "RGB透過カラーキー"は "アルファチャンネル"を意味するものではありません。 – KonstantinL

+0

@ ConstantinLよ、ありがとう。そして確かに私はそれを何にラベルするべきか分からない! – Acidic

答えて

0

オリジナルのPNG画像には透明部分があります(メガネの枠線は厳密には不透明ではありませんが、スムーズに透明に移行するような感じです)。これは一般的なケースです。だから、この画像の上に緑色の背景があると、メガネの縁やその他の画像の周りに緑色が少し変わってしまいます。それは(50、200、25)ロングジではなく、(51,201,25)であり、もはやCSplashによって削除されません。

アルファチャンネルが1ビット(0または1、透明または不透明)の透明な形式で元のPNGを保存することで、トランジションが失われて再び開き、緑の背景トリック再び。

+0

ええ、あなたが正しいと思う、アンチエイリアスでなければならない、今すぐ試してみる – Acidic

+0

YeppppppppppppppppppppppppppppppppがPhotoshopで修正しました!タイ! – Acidic

関連する問題