byte[] buffer = (byte[])dataRow["Picture"]; //從資料庫讀到的圖檔
MemoryStream s = new MemoryStream(buffer, 0, buffer.Length); //轉換為資料流
Bitmap photo = new Bitmap(s);
int _thumbnailSize = 160; //定義顯示圖檔大小
int width, height; //定義圖檔寬度和高度
//如果原圖檔的寬度與高度都小于定義顯示圖檔大小
if (photo.Width < _thumbnailSize && photo.Height < _thumbnailSize)
{
width = photo.Width; //寬度等于原寬度
height = photo.Height;//高度等于原高度
}
//如果原圖檔寬度大于原圖檔的高度
else if (photo.Width > photo.Height)
width = _thumbnailSize; //寬度等于定義圖檔尺寸
height = photo.Height * _thumbnailSize / photo.Width; //高度做相應比例縮小
}
//如果原圖檔高度大于原圖檔的寬度
else
width = photo.Width * _thumbnailSize / photo.Height; //寬度做相應比例縮小
height = _thumbnailSize; //高度等于定義圖檔大小
Bitmap target = new Bitmap(width, height);