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 でうまく機能し、画像はロスレスで保存されます。ズームインすると、ピクセル化はまったく見られませんが、この同じコンパイル済みアプリケーションを Windows 7 マシンで実行すると、保存された画像がピクセル化されて見えます。

これは、画像を保存する方法や、Windows 7 の画像保存機能/エンコーディングで変更されたことが原因ですか?

4

1 に答える 1

3

Win7 イメージはアンチエイリアス処理されています。
これは良いことですが、悪いことではありません。テキストをより滑らかにします。

クラスのプロパティによって制御されますGraphics

于 2011-09-02T18:32:05.827 に答える