ビットマップファイルを読み込むには Windows API を使ってしまうのが簡単です。おそらくC言語のライブラリで組むより短期間で品質を高めることができるのではないでしょうか?…というかベターな方法です。
Windows API でビットマップを読み込むには LoadImage() を使います。今回はファイルからビットマップ画像を読み込むため、次のようにパラメータを設定します(備忘録)。
LoadImage(NULL, // リソースを参照しない TEXT("ファイル名"), // 画像ファイル名 IMAGE_BITMAP, // ビットマップ形式 0, // サイズを自動判別 0, // サイズを自動判別 LR_LOADFROMFILE); // 画像をファイルから読み込む
実際に使うには描画先と互換性のあるデバイスコンテキストを作り SelectObject() 関数でリンクします。
// 初期化 HDC hMemDC; HBITMAP hBitmap; // 読み込み HDC hdc = GetDC(hWnd); // 描画先のハンドルを得る hMemDC = CreateCompatibleDC(hdc); // 描画先と互換性のあるメモリイメージを作る hBitmap = (HBITMAP)LoadImage(NULL, // 画像ファイルを読み込む TEXT("ファイル名"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); SelectObject(hMemDC, hBitmap); // メモリイメージに画像をバインドする ReleaseDC(hWnd, hdc); // もう描画先情報は不要なので解放する // 解放 DeleteDC(hMemDC); DeleteObject(hBitmap);
実はかなり久しぶりにこの関数を使います。
Contributions