タイトル : 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 関数でコマンドライン起動して変換してもらうとか。 |