ビットマップの拡大/縮小

解決


まさ  2003-10-17 04:36:32  No: 52309

ビットマップファイルを読み込んで、拡大・縮小の処理を行い、
別のファイルに保存したいのですが、どうすればいいのでしょうか。

ファイルを読み込んで、StretchBltを使い画面に出力させると拡大・縮小
はできているのですが、そこから先ファイルへの保存の仕方を教えて下さい。

また、参考になるホームページがありましたら教えて下さい。


宍戸 輝光  URL  2003-10-17 06:55:00  No: 52310

とりあえず、手軽にやるなら

BMPからDIBを作成
GDIビットマップ(DDB)と描画用メモリDCを作成
DDBにDIBをStretchDIBits()
DDBの描画内容をGetDIBits()でバッファに取得
取得した描画内容をBMPに書き出す

という流れですかね。まあ、最初のDIB作成はDIBではなく
GDIのHBITMAPを作ってStretchBlt()してもよいでしょうが。

ビットマップの内容をファイルに書き出す処理については

http://www.sm.rim.or.jp/~shishido/wincap.html

に以前まとめたものがあるので、参考にしてみてください。


まさ  2003-10-17 23:09:20  No: 52311

宍戸様

おかげさまでBITMAPを拡大・縮小後にファイルへ保存できました。

ちなみに、ファイル出力の個所はいろいろと探し、以下の
ホームページにあるものを参照致しました。
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_7zfp.asp

クライアント領域のコピーの個所を宍戸様のホームページ
に記載されていたものを参考にさせて頂きました。
# 後述の方が間違っておりましたため、
# ファイル出力に失敗していました・・・(^^;

誠にありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加