Autor Beitrag
schlumsch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: Fr 24.12.04 12:06 
Hi,

also folgendes Problemchen habe ich.
Ich hab ein jpg-image was ich gerbne solange komprimieren will
bis es kleiner als ein bestimmter wert wird.
Das Prinzip funktioniert wunderbar wenn ich als Ausgangsfile ein bmp habe, bei einem Jpg
allerdings verändert sich die Dateigrösse nicht.
Kann mir jemand sagen was an folgendem Cone fehlerhaft ist?

Thx schonmal, schlumsch

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
Var
   f: file of byte;
   dateigroesse : Longword;
   i: integer;
   quality : byte;
   bmpname, jpgname : string;
   pic : Timage;
   jpg,jpgnew : TJpegImage;
begin
....
....
        if dateigroesse > 90 then
        begin
        quality := 100;
        jpgname := directorylistbox1.directory +'\' + stringgrid1.cells[0,stringgrid1.row];


       repeat
        pic := timage.create(nil);
        pic.picture.loadfromfile(jpgname);
              with TJpegImage.create do
                   begin
                     performance := jpBestQuality;
                     quality := quality - 10;
                     compressionquality := quality;
                     showmessage(inttostr(compressionquality));
                     assign(pic.picture.graphic);
                     savetofile(jpgname);
                     free
                   end;
              pic.free;
              AssignFile(f,jpgname);
              Reset(f);
              dateigroesse := round(filesize(f)/1024);
              closefile(f);
              until dateigroesse <= 90;
       end;


Moderiert von user profile iconUGrohne: Code- durch Delphi-Tags ersetzt.

_________________
icq 102779206
"God is real, unless declared integer..."
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 24.12.04 12:27 
Warum berechnest du nicht einfach die Qualität, die du einstellen musst, damit du unter die gewünschte Größe kommst :gruebel:

AXMD
schlumsch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: Fr 24.12.04 12:58 
Hmmm, ums kurz zu sagen,
weil ich nicht weis wie ;)

Wie mach ich das denn? *g*


mfg

_________________
icq 102779206
"God is real, unless declared integer..."
Nam
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 24



BeitragVerfasst: Fr 24.12.04 13:12 
Zitat:
Die Eigenschaft CompressionQuality gibt das Verhältnis zwischen der Bildqualität und der Dateigröße an.

type TJPEGQualityRange = 1..100;
property CompressionQuality: TJPEGQualityRange;

Beschreibung

Mit CompressionQuality können Sie die Qualität der Komprimierung für die JPEG-Grafik festlegen, wenn diese gespeichert wird. Für das Einlesen von Dateien wird diese Eigenschaft nicht verwendet. Eine höhere Komprimierung ergibt eine etwas schlechtere Bildqualität, dafür aber eine kleinere Datei.
TJPEGQualityRange ist der Typ der Eigenschaft CompressionQuality. Je höher der Wert von TJPEGQualityRange ist, um so besser ist die Bildqualität. Dafür wird die Datei entsprechend größer. Je niedriger der Wert von TJPEGQualityRange ist, um so kleiner wird (auf Kosten der Bildqualität) die resultierende Datei.
schlumsch Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 122

alles Win :)
Delphi 2005 Prof, Delphi 2007
BeitragVerfasst: Fr 24.12.04 13:57 
Ja, soweit klar.
Das mach ich ja auch oben in meinem Code - ich zähl die Quality jeweils in 10ner Schritten runter und das klappt auch soweit. Das Problem ist eben nur das scih beim speichern die Dateigrösse niemals verändert, egal
welche Quality momentaneingestellt ist

_________________
icq 102779206
"God is real, unless declared integer..."