当前位置:  开发笔记 > 编程语言 > 正文

调整图像大小而不会丢失任何质量

如何解决《调整图像大小而不会丢失任何质量》经验,为你挑选了4个好方法。

我需要调整图像大小,但图像质量不会受此影响.



1> Kris Erickso..:

正如rcar所说,你不能没有失去一些品质,你可以用c#做的最好的事情是:

Bitmap newImage = new Bitmap(newWidth, newHeight);
using (Graphics gr = Graphics.FromImage(newImage))
{
    gr.SmoothingMode = SmoothingMode.HighQuality;
    gr.InterpolationMode = InterpolationMode.HighQualityBicubic;
    gr.PixelOffsetMode = PixelOffsetMode.HighQuality;
    gr.DrawImage(srcImage, new Rectangle(0, 0, newWidth, newHeight));
}


方法'System.Drawing.Image.Save(string filename,ImageFormat format)'保存质量为75的JPG.图像模糊,客户端无法接受.修复质量问题的原因是使用Save(字符串文件名,ImageCodecInfo编码器,EncoderParameters encoderParams)代替并指定接近100的质量值.
这有时会在图像的边框上留下瑕疵......
我可以补充一点(如果可能的话),用户应该从Bitmap图像开始,比如说,它需要两倍大,然后按比例缩小.生成的图像应该非常流畅.
gr.SmoothingMode = SmoothingMode.HighQuality是更好的代码.目前,HighQuality和AntiAlias是一回事,但未来微软可能会发明一些新东西.HighQuality应始终是最好的别名.

2> Randy..:

除非您正在进行矢量图形处理,否则无法在不丢失图像质量的情况下调整图像大小.



3> ozba..:
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;
}

从这里开始



4> Ashlocke..:

我相信你要做的是"调整/重新采样"你的图像.这是一个很好的网站,提供说明并提供实用程序类(我也碰巧使用):

http://www.codeproject.com/KB/GDI-plus/imgresizoutperfgdiplus.aspx

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有