だから私はかなり奇妙な状況に遭遇しました。
以下を使用して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 の画像保存機能/エンコーディングで変更されたことが原因ですか?