tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: ビットの深さを変えずにビットマップを縮小保存
投稿日: 2014/02/25(Tue) 11:12
投稿者魔界の仮面弁士
> 「ピクチャーボックスに貼り付けて縮小・保存」の方法しか
> 見つけられませんでした。

PictureBox の Image (≠Picture)プロパティを SavePicture する方法については、
画面設定の色深度に依存してしまうため、利用できません。
(SavePicture 自体は色深度を変更させないのですが、Image の色深度は OS 設定依存のため)


API だらけのコードにはなってしまいますが、かわりに、
GDI+ Flat API を利用してみては如何でしょうか。
実際に可能かどうかは未確認ですが…。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms533969.aspx


120x120 程度のサムネイル作成なら、GdipGetImageThumbnail API が使えるかも知れません。
(VB.NET で言えば、Image.GetThumbnailImage メソッドに相当する機能です)

拡縮描画するなら GdipDrawImage何某 API、保存は GdipSaveImageToFile API です。
保存時に指定する Bitmap のエンコーダーは {557CF400-1A04-11D3-9A73-0000F81EF32E} です。
色深度(ColorDepth)は、{66087055-ad66-4c7c-9a18-38a2310b8337} かな。
http://msdn.microsoft.com/ja-jp/library/system.drawing.imaging.encoder.aspx


あるいは、リサイズ機能を持ったフリーソフトを探してきて、
Shell 関数でコマンドライン起動して変換してもらうとか。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。