Bitmap クラスを使用して JPEG 画像を保存しようとしています。指定した品質レベルに関係なく、シャープなエッジが常にぼやけていることに気付きました。1 つまたは複数のチャネルのサブサンプリングが原因であることがわかりました。画像を保存するときにサブサンプリングを無効にするにはどうすればよいですか?
私は現在このコードを使用しています:
EncoderParameters parameters = new EncoderParameters(1);
parameters.Param[0] = new EncoderParameter(Encoder.Quality, 85L);
ImageCodecInfo codec = GetEncoderInfo("image/jpeg");
image.Save(path, codec, parameters);
ノート
JPEG が非可逆であることは知っていますが、それはここでは問題ではありません。ImageMagick を使用してデフォルトのオプションで画像を保存すると、同様の結果が得られます。しかし、1:1:1 のサブサンプリングを指定すると、ぼやけがなくなります。
より良い圧縮が必要なため、PNG は使用したくありません。画像を BMP として保存し、手動で JPEG に変換すると、ぼやけることなく優れた結果が得られます。したがって、形式はここでは問題になりません。