開発じたばた日誌

前へ●●●次へ
じたばた日誌目次へ戻る
TSUCHY Softへ戻る


Styx ビットマップファイル編

 さて前回でパレットなるもののお話をしましたが、ビットマップファイルもフルカラーモードのものや 256色、16色モードのものがあります。そして256,16色のファイルは内部にパレットを持っています。 WindowsのBMPファイルはビデオボードに出力する形式にとても似ているのです。

 困ったことにBMPファイルは256とフルカラー、ビデオも256とフルカラーがあります(その他は考えないことにしました)。 つまり4通りの組み合わせで、全部うまくできないとダメなのです。

 一番簡単なのはフルカラーBMPをフルカラービデオに表示するときです。面倒なパレットもないし、素直に出せばいいのです。 256色ビットマップをフルカラービデオに出力するのも問題ありません。大は小をかねるです。

 問題は256色のビデオに出力するときです。この場合、アプリ同士で色の奪い合いがはじまります。 あなたはペイントブラシで「雲.BMP」と「花見.BMP」を開いたことがありますか? 256ビデオを使っているなら、どちらか一方はきれいに表示されないはずです。 256では同時に256色しか表示できません。 「花見」を表示しているときは256のうちでピンク系の色がたくさん使われます。 だから青系の「雲」はきれいに表示されません。

 Styxがビットマップを表示するということは、この色の奪い合い合戦に参加し、勝利をおさめなくてはいけません。 でもいつも勝利してはだめです。ほかのウィンドウがアクティブになったときは負けてやらないとだめです。 というか、勝とうとしてもWindowsが許してくれません。

 256やフルカラーのBMPファイルを表示するには、まずHBITMAPをつくらないと話になりません。 これはCreateDIBitmapを使いました。この関数を使うだけでも結構お勉強が必要ですね。フウフウ、ハアハア。 ここでのお勉強は次作のちょっと見る32でずいぶん役立ちました。

 さてHBITMAPはうまくつくれたのですが、きれいに表示されません。もしかしたら真っ黒だったかも。 そうです。パレットの実体化という作業が必要なのです。パレット!! 初めて扱うものです。最も基本的なことはわかりますが、詳しいことはわからないのです。