4

Visual C++ 6.0 を使用していて、CImage にアクセスできない CBitmap に jpg をロードするにはどうすればよいですか?

どうも

4

5 に答える 5

2

OleLoadPicturePath API を呼び出すだけで、jpg だけでなく他の一般的な形式も読み込むことができます。

これを IPicture オブジェクトにロードした後、get_Handle を呼び出して HBITMAP へのハンドルを取得できます。

ありがとう

于 2012-04-10T13:27:07.387 に答える
1

できません、または少なくとも、組み込みの方法はありません。CxImageを見てください。特に、jpgサポートのみが必要な場合は、おそらくそれを機能させることができます。

于 2012-04-10T13:17:29.563 に答える
1

この種の変換は複雑なので、外部ライブラリを使用することをお勧めします。これを見てください。

于 2012-04-10T13:19:06.160 に答える
1

私が知っているネイティブな方法はありません。私は常に JPG と PNG に FreeImage を使用てきました。これは堅牢で、PNG を HBITMAP にロードする方法に関するサンプル コードが FAQ にあります (これは JPG でもまったく同じように機能します)。

経験からの警告 - JPG をリソースとして保存する場合は、必ず「JPG」リソース タイプを作成して保存し、BITMAP リソースとして追加しようとしないでください。ロードしようとするあらゆる種類の問題。当たり前のように聞こえますが、理解するのにしばらく時間がかかりました。

于 2012-04-10T14:58:23.290 に答える
1
CBitmap bmp;
HANDLE h = ::LoadImage(NULL, _T("c:\\MyImage.jpg"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
bmp.Attach(h);
于 2012-04-10T14:53:16.857 に答える