Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Jpegs : Qualität verringern (https://www.delphipraxis.net/8315-jpegs-qualitaet-verringern.html)

ssach 2. Sep 2003 11:34


Jpegs : Qualität verringern
 
hy,

wollte wissen wie es geht die Qualität eines Jpeg zu verringern, um die Bildgrösse zu erhalten jedordie Grösse der Datei zu verringern!?
danke

cu

Matze 2. Sep 2003 11:49

Re: Jpegs : Qualität verringern
 
Delphi-Quellcode:
jpeg.CompressionQuality := 50; //oder etwas anderes
jpeg.Compress;

ssach 2. Sep 2003 12:19

Re: Jpegs : Qualität verringern
 
verstehe schon wie das in etwa soll gehen, aber wie kriege ich dies in eine prozedur eingebunden die mir den jpeg dann nach eine andere stelle(edtFilePath.Text) speichert?

ciao

Matze 2. Sep 2003 12:55

Re: Jpegs : Qualität verringern
 
Ich hab's auch noch nie gemacht. ;)

Delphi-Quellcode:
uses
  JPEG;

procedure KonvertiereJPEG(const FileNameVon, FileNameNach: TFileName);
var
  jpeg: TJPEGImage;
begin
  jpeg := TJPEGImage.Create;
  try
    jpeg.CompressionQuality := 50; //100 ist Standard
    jpeg.LoadFromFile(FileNameVon);
    jpeg.Compress;  //<==================== Hier gibt's noch ein Problem!!!
    jpeg.SaveTofile(FileNameNach+'.jpg');
  finally
    jpeg.Free
  end;
end;

//Afruf:
  KonvertiereJPEG('D:\Matze.jpg', 'D:\Matze2');

aber:

Delphi-Quellcode:
jpeg.Compress;
geht irgendwie (noch) nicht. :(

APP 2. Sep 2003 14:43

Re: Jpegs : Qualität verringern
 
Hallo,

versuche mal

1. jpeg.LoadFromFile(FileNameVon);
2. jpeg.CompressionQuality := 50; //100 ist Standard
3. jpeg.Compress;
4. jpeg.SaveTofile(FileNameNach+'.jpg');

Matze 2. Sep 2003 15:00

Re: Jpegs : Qualität verringern
 
@APP:
Hatte ich auch zuerst, ging auch nicht. :(

APP 2. Sep 2003 16:20

Re: Jpegs : Qualität verringern
 
Hallo,
ich dachte, gleich ich drehe durch, da ich in meinem Code
nachgesehen hatte, dort funkte alles -allerdings mit einer
BMP -> JPG konversion! :mrgreen: :mrgreen:

Delphi-Quellcode:
PROCEDURE TForm1.Button1Click(Sender: TObject);
VAR
   jpg                            : TJpegImage;
BEGIN
   jpg := TJpegImage.Create;
   TRY
      jpg.Loadfromfile('C:\Dokumente und Einstellungen\nemesisposter.jpg');
      jpg.CompressionQuality := 50;
      jpg.DIBNeeded; // SCHULDIG!!!
      jpg.Compress;
      jpg.SaveToFile('C:\Dokumente und Einstellungen\nemesisposter_thumsdfgasgb.JPG');
   FINALLY
      jpg.free;
   END;
END;
OH:
Zitat:

Die Methode DIBNeeded dekomprimiert die JPEG-Grafik in eine Bitmap.

procedure DIBNeeded;

Beschreibung

Setzen Sie DIBNeeded ein, wenn für die JPEG-Grafik eine Bitmap-Darstellung erforderlich ist. Rufen Sie diese Methode zur Optimierung direkt vor dem Zeichnen auf (nicht während des Zeichnens).
NEWSGROUP:
Zitat:

Compress takes the bitmap part of the jpegimage and compresses into a
jpeg. However, TJPEGImage doesn't decode the jpeg data into a bitmap
untill it needs to, which it thinks it doesnt in your case. So, after
loading it, slap in a DibNeeded; which forces it to decode the jpeg.


ssach 3. Sep 2003 17:45

Re: Jpegs : Qualität verringern
 
hy,

es funzt leider nochimmer nicht bei mir, hab alles versucht, will ich dann die qualitätsveranderung starten stürzt das programm ab mit einem Hinweis auf die Zeile
Delphi-Quellcode:
jpg.CompressionQuality := QUALITY;

hoffe könnt mir helfen!
danke

cu

Matze 3. Sep 2003 17:48

Re: Jpegs : Qualität verringern
 
Ist "QUALITY" ein Integer?

TimmA 3. Sep 2003 17:57

Re: Jpegs : Qualität verringern
 
Ja Integer-Wert zwischen 1 - 100

[zitat @ OH]
Beschreibung

Mit CompressionQuality können Sie die Qualität der Komprimierung für die JPEG-Grafik festlegen, wenn diese gespeichert wird. Eine höhere Komprimierung ergibt eine etwas schlechtere Bildqualität, dafür aber eine kleinere Datei. Für das Einlesen von Dateien wird diese Eigenschaft nicht verwendet.

TJPEGQualityRange ist der Typ der Eigenschaft CompressionQuality. Je höher der Wert von TJPEGQualityRange (Maximalwert: 100) ist, um so besser ist die Bildqualität. Dafür wird die Datei entsprechend größer. Je niedriger der Wert (Manimalwert: 1) von TJPEGQualityRange ist, um so kleiner wird (auf Kosten der Bildqualität) die resultierende Datei.
[/zitat]


Ich habe es in meinem Prog. am laufen und es läuft prima :)

Wenn jemand interesse hat kann ich morgen den Code via PN schreiben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:53 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz