asp.netで画像のサイズ変更を試しています。実際のサイズ変更コードはさておき、なぜビットマップの保存オーバーロードに大きな違いがあるのか 疑問に思っています
方法 1
ImageCodecInfo jpgEncoder =
ImageCodecInfo.GetImageDecoders()
.First(c => c.FormatID == ImageFormat.Jpeg.Guid);
Encoder encoder = Encoder.Quality;
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(encoder, (long)quality);
bitmap.Save(_current_context.Response.OutputStream,jpgEncoder,encoderParameters)
方法 2
bitmap.Save(_current_context.Response.OutputStream,ImageFormat.Jpeg)
したがって、方法 1 は、100 品質で、この特定の jpeg 画像を約 250kb で出力します。90 品質では、約 100kb に低下します。
ただし、方法 2 では、画像が約 60kb にドロップされます。これは大きな違いであり、目に見える違いもありません。
違いが非常に大きい理由はどこにも見つからないようです.MSDNには、これら2つのオーバーロードに関する詳細はありません.
どんな洞察も高く評価されます。ありがとう