画像を SQL サーバーに保存しました。imageContent はバイト配列です (DB に保存された画像データを含みます)。次のコードを使用してメイン画像からサムネイルを作成します。現在、サムネイルの明示的な幅と高さ (40x40) を設定していますが、画像の縦横比が損なわれます。元の画像の縦横比を見つけて縮小するにはどうすればよいですか?元のアスペクト比が変更されていないことを確認しますか?
Stream str = new MemoryStream((Byte[])imageContent);
Bitmap loBMP = new Bitmap(str);
Bitmap bmpOut = new Bitmap(40, 40);
Graphics g = Graphics.FromImage(bmpOut);
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.FillRectangle(Brushes.White, 0, 0, 40, 40);
g.DrawImage(loBMP, 0, 0, 40, 40);
MemoryStream ms = new MemoryStream();
bmpOut.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] bmpBytes = ms.GetBuffer();
bmpOut.Dispose();
//end new
Response.ContentType = img_type;
Response.BinaryWrite(bmpBytes);//imageContent,bmpBytes