掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GDI+で読み込んだ画像をDIBに変換するには? (ID:59342)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在、GDI+を利用して読み込んだ画像ファイルをウィンドウ上に描画させたいと考えています。 通常であれば、以下のようにして簡単に描画できるのですが、プログラムの性質上 何度も画像を描画しなおすため、動作が非常に遅くなってしまいます。 char * filename; // 表示させたい画像ファイル BSTR bstrFileName; bstrFileName = _bstr_t(filename).copy(); Bitmap bmp = new Bitmap(bstrFileName); Graphics Grp(hdc); Grp.DrawImage(bmp, 0, 0, 600, 600); フォーマットを気にせずロードできる手軽さと、縮小のアンチエイリアシングの良さ(?)から GDI+を選んだのですが、こう遅いと実用できません。 OleLoadPictureFileを使う手段も考えましたが、StretchBltで転送した際に画像がノイズのように なってしまいうまくいきませんでした。 (原因不明です…。) そこで、一度プログラムで利用するサイズに変形した後、DIB形式に変換しキャッシュしてしまい、 以降はキャッシュしたDIBを利用したいと考えました。 いろいろ探して、Bitmap.LockBitsやらBITMAPDATAなどから取得できるのかな…?程度には見つけたのですが 具体的な方法がいまいちわかりません。 どなたかわかる方いましたら、教えてもらえないでしょうか?。。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.