0

所以我遇到了一个相当奇怪的情况。

我正在使用以下内容保存 PNG(无损)图像,

    public static void SaveJpeg(string path, Image image, int quality)
    {
        if ((quality < 0) || (quality > 100))
        {
            string error = string.Format("Jpeg image quality must be between 0 and 100, with 100 being the highest quality.  A value of {0} was specified.", quality);
            throw new ArgumentOutOfRangeException(error);
        }
        EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
        ImageCodecInfo imgCodec = GetEncoderInfo("image/png");
        EncoderParameters encoderParams = new EncoderParameters(1);
        encoderParams.Param[0] = qualityParam;
        image.Save(path, imgCodec, encoderParams);
    }

public static ImageCodecInfo GetEncoderInfo(string mimeType)
    {
        string lookupKey = mimeType.ToLower();
        ImageCodecInfo foundCodec = null;
        if (Encoders.ContainsKey(lookupKey))
        {
            foundCodec = Encoders[lookupKey];
        }
        return foundCodec;
    }

此代码在 XP 中运行良好,图像无损保存,当我放大时,我看不到任何像素化但是,当在 windows7 机器上运行相同的编译应用程序时,保存的图像看起来像素化。

这是由于我保存图像的方式,还是由于 Windows 7 中的图像保存功能/编码发生了变化?

4

1 回答 1

3

您的 Win7 图像已消除锯齿
这很好,还不错;它使文本更平滑。

它由Graphics类中的属性控制。

于 2011-09-02T18:32:05.827 回答