這裏是C#函數,您可以使用它來調整圖像的大小任何你想要的方式。在你的特定情況下,使其成爲一定大小的縮略圖。 它需要System.Drawing.Image
和int size
希望其寬度爲並返回System.Drawing.Image
。 現在,這個工作是肯定的,我在當前的項目中使用它,它很好地完成了這項工作。
public System.Drawing.Image ScaleBySize(System.Drawing.Image imgPhoto, int size)
{
var logoSize = size;
float sourceWidth = imgPhoto.Width;
float sourceHeight = imgPhoto.Height;
float destHeight;
float destWidth;
const int sourceX = 0;
const int sourceY = 0;
const int destX = 0;
const int destY = 0;
// Resize Image to have the height = logoSize/2 or width = logoSize.
// Height is greater than width, set Height = logoSize and resize width accordingly
if (sourceWidth > (2 * sourceHeight))
{
destWidth = logoSize;
destHeight = sourceHeight * logoSize/sourceWidth;
}
else
{
int h = logoSize/2;
destHeight = h;
destWidth = sourceWidth * h/sourceHeight;
}
// Width is greater than height, set Width = logoSize and resize height accordingly
var bmPhoto = new Bitmap((int)destWidth, (int)destHeight, PixelFormat.Format32bppPArgb);
bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
using (Graphics grPhoto = Graphics.FromImage(bmPhoto))
{
grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
grPhoto.DrawImage(imgPhoto,
new Rectangle(destX, destY, (int)destWidth, (int)destHeight),
new Rectangle(sourceX, sourceY, (int)sourceWidth, (int)sourceHeight),
GraphicsUnit.Pixel);
grPhoto.Dispose();
}
return bmPhoto;
}
希望這會幫助你。