在我的项目中,我想从用户上传的图像生成缩略图并将其显示在图库中(显示在大小为:180 x 250 的 div 框中)。以下是我用来执行此操作的代码。
Size thumbnailSize = GetThumbnailSize(img);
System.Drawing.Image thumbnail = img.GetThumbnailImage(thumbnailSize.Width, thumbnailSize.Height, null, IntPtr.Zero);
.....
private Size GetThumbnailSize(System.Drawing.Image original)
{
const int maxPixels = 300;
int originalWidth = original.Width;
int originalHeight = original.Height;
double factor;
if (originalWidth > originalHeight)
{
factor = (double)maxPixels / originalWidth;
}
else
{
factor = (double)maxPixels / originalHeight;
}
return new Size((int)(originalWidth * factor), (int)(originalHeight * factor));
}
我的问题是,生成的缩略图只适用于大尺寸的图像,当用户上传较小的图像(例如:30 x 30)时,生成的缩略图将被放大并且不清晰,如下所示。那么,无论图像大小如何,如何才能生成比例合适的缩略图并在我的画廊 div 框中正确显示?
我建议检查图像是否小于您想要的尺寸。如果不是像你已经做的那样对待它。如果它较小,则将图像数据复制到具有您想要的大小的空白图像的中心,并将其显示为缩略图。
我是一名优秀的程序员,十分优秀!