タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

VCに関するkoutakiのブックマーク (4)

  • C++クラスの例>DIBクラス

    今回は、C++のクラスの例としてWindowsのDIB(デバイス独立ビットマップ)をクラス化してみます。今回クラス化するのは、DIBの作成と破棄、そして簡単な描画機能だけですが、このクラスを基に機能を拡張して行けばDIBを「オブジェクト」として簡単に扱うためのクラスも出来るでしょう。 DIBクラスの設計 今回作るクラスは、24ビットフルカラーDIBの初期化と解放、描画処理をクラス化したものです。クラスの設計としては、大きさやビットマップのアドレスといった属性とDIBを操作する関数を定義する事になるわけですが、オブジェクト指向プログラミングの「原則」通り属性の変数はprivateとして直接参照出来ないようにし、アクセスメソッドを用意します。 属性は、大きさ(幅と高さ)、ビットマップの先頭アドレス、それからDIBの操作の時に必要になるBITMAPINFO構造体といったものを定義しましょう。関数

  • 実行結果をBMP形式で保存したい。

    出来てしまえば割と簡単ですが、道のりは近くないです。 私も以前書籍などを探し、akagenoanfanさんと同じような事で困っていた時期がありました。 実証済みの関数を上げさせていただきます 呼び出し部 SaveBitmap(this->m_CapDisp.m_hWnd, "TEST1.BMP"); // ビットマップの保存 ※引数1でCDC描画元のウインドウハンドルを渡します ※引数2でファイル名を渡します 関数部 //////////////////////////////////// // ビットマップファイルのファイル保存 // void SaveBitmap(HWND hWnd, LPCTSTR sFileName) { HANDLEhFile; HDChDc, hDcBuf; LPBITMAPFILEHEADERlpHead; LPBITMAPINFOHEADERlpInfo;

    実行結果をBMP形式で保存したい。
  • WILL - 直接書き込み可能なビットマップを使用する

    CreateDIBSection というAPIがあります。 これは、メモリ上にビットマップイメージを持つ、直接書き込み可能なビットマップを作成するAPIです。 古い言い方をすれば仮想VRAMといったところでしょうか。(笑 なんかゲームに最適っぽい感じがしたので使ってみたくなってきました。 というわけで解説。 まず、APIの定義ですが… HBITMAP CreateDIBSection( HDC hdc, // デバイスコンテキストのハンドル CONST BITMAPINFO *pbmi, // ビットマップデータ UINT iUsage, // データ種類のインジケータ VOID **ppvBits, // ビット値 HANDLE hSection, // ファイルマッピングオブジェクトのハンドル DWORD dwOffset // ビットマップのビット値へのオフセット );

  • VC++「ビットマップ」メモ(Hishidama's VC++Memo "Bitmap(DIB)")

    S-JIS[2003-01-05] ビットマップ(DIB)の使い方 ウィンドウズの標準的な画像であるビットマップは、MFCの場合、CBitmapクラスで扱います。 これで描画は簡単に行えるのですが、デバイスに依存しているビットマップ(DDB)なので、色数を自分で指定したりできません。 したがって、ファイルへの書き込みはまだしも、 読み込んだ場合に現在の画面と整合性のある色数にすることは難しいです。 そこで、デバイスに依存しないビットマップ(DIB)の出番です。 これはデバイスに依存しないと謳っているだけあって、現在の画面の色数にかかわらず、色数を自分で指定できます。 ファイルとのやりとりだと、色数はファイル内で決まっているので、DIBでないと不便です。 ただ、MFCではサポートしていないので、APIを呼んで操作します。 しかしクラス化した方が便利なので、最後にCDibというクラスを作ってみ

  • 1