C#Image resize-质量下降

时间:2012-06-22 07:36:23

标签: c#-3.0

我使用了C#方法来调整图像大小。我使用了以下链接中的几种方法。

C# Simple Image Resize : File Size Not Shrinking

Resize an Image C#

但重新调整图像大小时缺少质量

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

您可以使用WIC(Windows Imaging Component)代替GDI +。这是一个nice blog post的例子。

答案 1 :(得分:0)

首先将您的Bitmap转换为Image

Bitmap b = new Bitmap("asdf.jpg");
Image i = (Image)b;

然后将图像传递给此方法以调整大小

public static Image ResizeImage(Image image, int width, int height, bool onlyResizeIfWider)
{
    using (image)
    {
        // Prevent using images internal thumbnail.
        image.RotateFlip(RotateFlipType.Rotate180FlipNone);
        image.RotateFlip(RotateFlipType.Rotate180FlipNone);

        if (onlyResizeIfWider == true)
            if (image.Width <= width)
                width = image.Width;

        // Resize with height instead?
        int newHeight = image.Height * width / image.Width;
        if (newHeight > height)
        {
            width = image.Width * height / image.Height;
            newHeight = height;
        }
        Image NewImage = image.GetThumbnailImage(width, newHeight, null, IntPtr.Zero);
        return NewImage;
    }
}

我希望这会有所帮助。