如何在保存文件夹时调整图像大小

时间:2010-01-06 11:31:45

标签: c# asp.net image

我有一个(600 * 800大小)或任何大小的图像文件。现在我需要将它们转换成尺寸为****(110 * 110)****的thubnail图像尺寸

但如果我减小图像的大小,我不应该改变图像的质量。一旦我们缩小图像尺寸,图像的质量就会消失

有没有影响图像质量的方法我们可以把它们转换成缩略图[在.net中有没有内置的类)

任何帮助都会很棒

2 个答案:

答案 0 :(得分:3)

好吧,关于如何做,有一个有趣的材料here可能会帮助你。

关于质量下降,如果你的意思是分辨率,只要你缩小图像尺寸就没有办法,你就丢掉了不再可以重建的空间信息。当然,如果你使用某种插值,但它永远不会与你的原始图片相同。

您可以做的是存储每个版本的一个版本。

这是从链接获得的代码,老实说,我认为从Bitmap开始的最后5行代码b = new Bitmap(destWidth,destHeight);足以解决您的问题。

private static Image resizeImage(Image imgToResize, Size size)
{
   int sourceWidth = imgToResize.Width;
   int sourceHeight = imgToResize.Height;

   float nPercent = 0;
   float nPercentW = 0;
   float nPercentH = 0;

   nPercentW = ((float)size.Width / (float)sourceWidth);
   nPercentH = ((float)size.Height / (float)sourceHeight);

   if (nPercentH < nPercentW)
      nPercent = nPercentH;
   else
      nPercent = nPercentW;

   int destWidth = (int)(sourceWidth * nPercent);
   int destHeight = (int)(sourceHeight * nPercent);

   Bitmap b = new Bitmap(destWidth, destHeight);
   Graphics g = Graphics.FromImage((Image)b);
   g.InterpolationMode = InterpolationMode.HighQualityBicubic;

   g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
   g.Dispose();

   return (Image)b;
}

答案 1 :(得分:0)

当您缩小图像尺寸时,不会降低图像的质量,只有当您尝试从缩小尺寸版本将其恢复到原始尺寸时,质量才会受到影响。

相关问题