掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
IJGを用いてJPEGからHBMPの取得。画像表示するには? (ID:53833)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
JPEG画像からビットマップハンドルを取得し、そのハンドルを用いて画像を表示させるものを作ろうと思ったのですが、うまくいきません。 良いアドバイスがあればよろしくお願いいたします。 開発環境は、Windows2000/VC++6.0です。 IJGライブラリを用いて下記のようにビットマップハンドルを取得しました。 =================================================================== image.err = jpeg_std_error(&jerr); fp = fopen( FileName,"rb") // JPEGファイルオープン jpeg_create_decompress(&image); jpeg_stdio_src(&image,fp); jpeg_read_header(&image,TRUE); jpeg_start_decompress(&image); bmi.biSize = sizeof(BITMAPINFOHEADER); bmi.biWidth = image.image_width; bmi.biHeight = image.image_height; bmi.biPlanes = 1; bmi.biBitCount = 24; bmi.biCompression = BI_RGB; bmi.biXPelsPerMeter = 0; bmi.biYPelsPerMeter = 0; bmi.biClrUsed = 0; bmi.biClrImportant = 0; bmi.biSizeImage = 0; hBitmap = CreateDIBSection(0, (BITMAPINFO *)&bmi, DIB_RGB_COLORS, (VOID **)&pV, NULL, 0); =================================================================== 上記で取得したビットマップハンドル(hBitmap)を用いて以下のように表示しようとしました。 =================================================================== case WM_PAINT: hdc = BeginPaint(hWnd, &ps); GetObject(hBitmap, sizeof(BITMAP), &bmp_info); wx = bmp_info.bmWidth; wy = bmp_info.bmHeight; GetWindowRect(hWnd, &rc); hdc_mem = CreateCompatibleDC(hdc); SelectObject(hdc_mem, hBitmap); BitBlt(hdc,0, 0, wx, wy, hdc_mem, 0, 0, SRCCOPY); DeleteDC(hdc_mem); DeleteObject(GhBitmap); EndPaint(hWnd, &ps); break; =================================================================== こうして実行すると、元JPEG画像のWHサイズは取得しており、そのサイズが表示されるのですが、画像が表示されず真っ黒になります。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.