DOBON.NET DOBON.NETプログラミング掲示板過去ログ

画像のサムネールを作成してImageListへ追加する方法

環境/言語:[C#]
分類:[.NET]

いつも参考にさせて頂いております。
初歩的な質問で申し訳ありません。

下記のようなコードで、画像の縦横比率を保持したままサムネールを作成し
ImageListへ追加しているのですが、ImageListへ追加した際に画像の
比率が崩れてしまいます。

ImageListに追加する前に画像のサイズをImageListのサイズと合わせて
おく必要がると思うのですが、何か良い方法はないでしょうか?
(例えばImageListのサイズが100x100でサムネール画像が70x100ピクセル
 だった場合サムネール画像を100x100に変換する(余白部分を白埋めする等)
 ができないものでしょうか?)

Bitmap myBitmap = new Bitmap(d);
//縦横比率の計算(縦又は横の最大は100ピクセル)
double a,b;
int x,y;
a = (double)100/myBitmap.Width;
b = (double)100/myBitmap.Height;
if(a<=b){
x = 100;
y = (int)(100*(a/b));
}else{
x = (int)(100*(b/a));
y = 100;
}
Image myThumbnail = myBitmap.GetThumbnailImage(x, y, null, IntPtr.Zero);
imageList1.Images.Add(myThumbnail);

ご教授の程よろしくお願いいたします。
任意のサイズのBitmapオブジェクトを作成した後、このBitMapよりGraphicsオブジェクトを作成(Graphics.FromImage)。
あとは指定位置にサムネールをDrawImageすればできますね。
ぱぱんぶぃびぃ様 お忙しい中、ご回答有難うございました。

> 任意のサイズのBitmapオブジェクトを作成した後、このBitMapよりGraphicsオブジェクトを作成(Graphics.FromImage)。
> あとは指定位置にサムネールをDrawImageすればできますね。

ご指摘の方法で、比率が崩れないサムネールが生成できました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板