Ich möchte Bild zu JPEG mit CoreCompat-Bibliothek in ASP.NET Core 2 komprimieren. Es gibt Qualitätsparameter, die ich ändern möchte und Bilder mit verschiedenen Qualitäten und Datei erhalten Größen. Problem ist, dass ich bei verschiedenen Werten für Qualitätsparameter dieselbe Dateigröße bekomme. Was mache ich falsch? hatBildgröße ändert sich nicht mit anderer Qualität, wenn mit CoreCompat komprimiert
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);
}
}
}
Meine Eingabedatei lang.jpg Größe 5 MB (8386x2229) und Ausgabedateien land_0.jpg, land_50.jpg und land_100.jpg: Für Qualität Ich war Werte 0, 50 und 100. Hier ist mein Code alle haben 62KB und Abmessungen 500x500. Warum haben diese Ausgabedateien dieselbe Größe?