ASP.NET Core 2でCoreCompatライブラリを使用して画像をjpegに圧縮したいと思います。異なる品質とファイルで画像を取得したい画像がありますサイズ。問題は、品質パラメータの値が異なると、同じファイルサイズになるということです。私は間違って何をしていますか?品質のために私はここに私のコードは値0、50と100を使用していました:CoreCompatで圧縮したときに画像のサイズが変わらない
const int size = 500;
const long quality = 50L;
string inputPath = @"D:\Images\land.jpg";
string outputPath = [email protected]"D:\Images\land_{quality}.jpg";
using (var image = new Bitmap(System.Drawing.Image.FromFile(inputPath)))
{
var resized = new Bitmap(size, size);
using (var graphics = Graphics.FromImage(resized))
{
graphics.CompositingQuality = CompositingQuality.HighSpeed;
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
graphics.CompositingMode = CompositingMode.SourceCopy;
graphics.DrawImage(image, 0, 0, size, size);
using (var output = File.Open(outputPath, FileMode.Create))
{
var qualityParamId = Encoder.Quality;
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(qualityParamId, quality);
var codec = ImageCodecInfo.GetImageDecoders()
.FirstOrDefault(c => c.FormatID == ImageFormat.Jpeg.Guid);
resized.Save(output, codec, encoderParameters);
}
}
}
私の入力ファイルlang.jpgは、サイズ5メガバイト(8386x2229)と出力ファイルland_0.jpg、land_50.jpgとland_100.jpgを持っていますすべて62KB、ディメンション500x500です。なぜこれらの出力ファイルは同じサイズですか?