我有一个(600 * 800大小)或任何大小的图像文件。现在我需要将它们转换成尺寸为****(110 * 110)****的thubnail图像尺寸
但如果我减小图像的大小,我不应该改变图像的质量。一旦我们缩小图像尺寸,图像的质量就会消失
有没有影响图像质量的方法我们可以把它们转换成缩略图[在.net中有没有内置的类)
任何帮助都会很棒
答案 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)
当您缩小图像尺寸时,不会降低图像的质量,只有当您尝试从缩小尺寸版本将其恢复到原始尺寸时,质量才会受到影响。