C# 如何在文件夹中保存图像时调整图像大小
我有一个(600*800大小)或任意大小的图像文件。现在我需要将它们转换成大小为****(110*110)的thubnail图像大小**** 但是如果我缩小图像的大小,我就不应该改变图像的质量。一旦我们缩小图像大小,图像的质量就消失了 有没有办法在不影响图像质量的情况下将它们转换为缩略图[在.net中有没有内置的类]C# 如何在文件夹中保存图像时调整图像大小,c#,asp.net,image,C#,Asp.net,Image,我有一个(600*800大小)或任意大小的图像文件。现在我需要将它们转换成大小为****(110*110)的thubnail图像大小**** 但是如果我缩小图像的大小,我就不应该改变图像的质量。一旦我们缩小图像大小,图像的质量就消失了 有没有办法在不影响图像质量的情况下将它们转换为缩略图[在.net中有没有内置的类] 任何帮助都是非常好的当您缩小图像时,您不会降低图像质量,只有当您尝试将其从缩小版本恢复到原始大小时,质量才会受到影响。当您缩小图像时,您不会降低图像质量,只有当您尝试将其从缩小版本
任何帮助都是非常好的当您缩小图像时,您不会降低图像质量,只有当您尝试将其从缩小版本恢复到原始大小时,质量才会受到影响。当您缩小图像时,您不会降低图像质量,只有当您尝试将其从缩小版本恢复到原始大小时rsion质量会受到影响。好吧,关于如何做,有一个有趣的材料可能会帮助你 关于质量损失,如果你指的是分辨率,那就没有办法,只要你缩小一幅图像,你就丢掉了无法重建的空间信息。当然,如果你使用某种插值,但它永远不会与原始图片相同 您可以做的是存储每个版本的一个版本 下面是从链接中获得的代码,老实说,我认为从位图b=新位图(destWidth,destHeight)开始的最后5行代码足以解决您的问题
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;
}
private static Image resizeImage(图像imgToResize,大小)
{
int sourceWidth=imgToResize.Width;
int sourceHeight=imgToResize.Height;
浮动百分比=0;
浮动nPercentW=0;
浮点数nPercentH=0;
nPercentW=((float)size.Width/(float)sourceWidth);
nPercentH=((浮点)size.Height/(浮点)sourceHeight);
如果(nPercentH
好吧,关于如何做,有一个有趣的材料可能会帮助你
关于质量损失,如果你指的是分辨率,那就没有办法,只要你缩小一幅图像,你就丢掉了无法重建的空间信息。当然,如果你使用某种插值,但它永远不会与原始图片相同
您可以做的是存储每个版本的一个版本
下面是从链接中获得的代码,老实说,我认为从位图b=新位图(destWidth,destHeight)开始的最后5行代码足以解决您的问题
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;
}
private static Image resizeImage(图像imgToResize,大小)
{
int sourceWidth=imgToResize.Width;
int sourceHeight=imgToResize.Height;
浮动百分比=0;
浮动nPercentW=0;
浮点数nPercentH=0;
nPercentW=((float)size.Width/(float)sourceWidth);
nPercentH=((浮点)size.Height/(浮点)sourceHeight);
如果(nPercentH