• 締切済み

[Win32API]JpegをDIBに変換する

お世話になっています。 C+Win32APIでVC++6.0を使用してプログラムを作成しています。 質問はタイトルの通りです。 Jpegファイルの読み込みにはOleLoadPicture()を使用していましたが、DIBへの変換には一回裏画面に描画してGetPixelでデータを拾う程度しか思い当たりません。 できれば外部ライブラリなどを使わずに解決したいと思っているのですが、よい方法がなかなか見当たりません。 ご存知の方、ご教授いただければ幸いです。

みんなの回答

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.3

★参考文献 ・下のリンクを参考にして下さい。 ・http://www.sm.rim.or.jp/~shishido/graphics.html→『DIB/Waveとグラフィック・音声処理実験室』 ・http://www.sm.rim.or.jp/~shishido/windows.html→『Windowsプログラミング研究室』 関連: ・http://oshiete1.goo.ne.jp/qa2662290.html→『画像処理のプログラミングを勉強したい!』回答者 No.3 ・http://oshiete1.goo.ne.jp/qa2643801.html→『C言語等での画像処理の勉強方法』回答者 No.3 ・以上。おわり。

参考URL:
http://www.sm.rim.or.jp/~shishido/
noname#30727
noname#30727
回答No.2

その裏画面(メモリDCとメモリビットマップの事?)のビットマップをCreateDIBSectionなどで作成すれば、ピクセルを直接読み書き出来ます。 メモリビットマップに一度描画してから取得するという考え方はあっています。

  • tettsu
  • ベストアンサー率30% (4/13)
回答No.1

BitBltを使えば簡単にできます。 以下手順です。 1.適当なウインドウからDCを取得します。(私はデスクトップウインドウを使いました) 2.取得したDCと互換のDCをCreateCompatibleDCを使って2つ作成。 3.1つ目の互換DCにOleLoadPictureで読み込んだビットマップを関連付ける 4.DIBビットマップを作成して、2つ目の互換DCに関連付ける 5.BitBltでDIBビットマップにコピーする

noname#75566
質問者

お礼

早速の回答ありがとうございます。 しかし、当方DIBビットマップに関しては理解不足なもので、4番の意味がよく解りません。 最終的に、RGBデータをBYTE型の配列で管理したいのですが、再度ご教授いただけるでしょうか。

関連するQ&A