在我的项目中,我想从用户上传的图像生成缩略图并将其显示在图库中(显示在大小为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框中正确显示?
答案 0 :(得分:1)
我建议检查图像是否小于您想要的尺寸。如果它不像你那样对待它。如果较小,请将图像数据复制到具有您想要的尺寸的空白图像的中心,并将其显示为缩略图。