Hi,
folgendes: In meinem Programm möchte ich ein Bild solange komprimieren lassen, bis das Bild kleiner als 100kb ist. Bei Bildern, die standardmäßig um 1Mb groß sind, funktioniert das ja problemlos. Wenn ich nun ein Bild nehme, was 10MB groß ist, kann < 100kb nicht mal bei Kompressionsstärke 1 erreicht werden. Nun würde ich gerne folgende Funktion so haben, dass mir angezeigt wird, dass das Bild nicht unter 100kb komprimiert werden kann. Wie geht das?
Delphi-Quellcode:
procedure [...]
var Kompression : Byte;
begin
Kompression := 100;
// 100 - kaum komprimiert; 1 - sehr komprimiert
repeat
JPGDatei.CompressionQuality := Kompression;
JPGDatei.Compress;
JPGDatei.SaveTofile(JPGDateiname);
Dec(Kompression)
until GetFileSize(JPGDateiname) < 100;
// wenn das Bild kleiner als 100kb ist, aus der Funktion gehen
end;