Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Qualität eines JPEG-Bildes verringern (https://www.delphipraxis.net/103613-qualitaet-eines-jpeg-bildes-verringern.html)

MrKnogge 18. Nov 2007 15:14


Qualität eines JPEG-Bildes verringern
 
Hallo,

ich möchte die Qualität eines JPEG-Bildes verinngern:
Delphi-Quellcode:
var
JpegImage1: TJpegImage;
begin
  JpegImage1 := TJpegImage.Create;
  try
    JpegImage1.LoadFromFile('c:\meinbild.jpg');
    JpegImage1.CompressionQuality := 50;
    JpegImage1.Compress;
    JpegImage1.SaveToFile('c:\meinbild.jpg');
  finally
    JpegImage1.Free;
  end;
end;
Allerdings verändert sich nichts am Bild. Hab ich was übersehen, oder muss ich auf die Graphics32-Library ausweichen ?

Gruß
Christian

jmit 18. Nov 2007 17:01

Re: Qualität eines JPEG-Bildes verringern
 
Zitat:

Zitat von MrKnogge
Hallo,

ich möchte die Qualität eines JPEG-Bildes verinngern:
Delphi-Quellcode:
var
JpegImage1: TJpegImage;
begin
  JpegImage1 := TJpegImage.Create;
  try
    JpegImage1.LoadFromFile('c:\meinbild.jpg');
    JpegImage1.CompressionQuality := 50;
    JpegImage1.Compress;
    JpegImage1.SaveToFile('c:\meinbild.jpg');
  finally
    JpegImage1.Free;
  end;
end;
Allerdings verändert sich nichts am Bild. Hab ich was übersehen, oder muss ich auf die Graphics32-Library ausweichen ?

Gruß
Christian

Es müsste aber die Dateigröße kleiner werden, da die Qualität ja geringer ist.

Gruß Jörg

DP-Maintenance 18. Nov 2007 17:02

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Sonstige Fragen zu Delphi" nach "Multimedia" verschoben.

MrKnogge 18. Nov 2007 17:04

Re: Qualität eines JPEG-Bildes verringern
 
Das ist es ja, es ändert sich gar nichts, die Größe bleibt unverändert.

Matze 18. Nov 2007 17:06

Re: Qualität eines JPEG-Bildes verringern
 
Hi,

bist du sicher, dass im try-Abschnitt kein Fehler auftritt?

Lossy eX 18. Nov 2007 17:20

Re: Qualität eines JPEG-Bildes verringern
 
Versuch mal ein paar extreme. Also 10 oder 100.

Wenn sich da auch nicht verändert, dann rufe mal nach dem LoadFromFile ein DibNeeded auf. Denn das TJpegImage dekodiert das Bild nur wenn du es auf ein Bitmap Assignst oder durch DibNeeded. Denn ich könnte mir vorstellen, dass er einfach das abspeichert was er gerade an komprimierten Daten da hat. Also direkt das was geladen wurde.

Falls das auch nicht geht dann assigne das Jpeg mal auf ein tempäres TBitmap. Und dieses dann auf ein neues TJpegImage um eventuelle Altlasen loszuwerden.

bitsetter 18. Nov 2007 17:23

Re: Qualität eines JPEG-Bildes verringern
 
Hallo,

versuche es mal so:
Delphi-Quellcode:
  var
JpegImage1, j: TJpegImage;
bmp: TGraphic;
begin
  bmp:= TBitmap.Create;
  JpegImage1 := TJpegImage.Create;
  try
    JpegImage1.LoadFromFile('c:\meinbild.jpg');
    bmp.Assign(JpegImage1);
    JpegImage1.Assign(bmp);
    JpegImage1.CompressionQuality := 50;
    JpegImage1.Compress;
    JpegImage1.SaveToFile('c:\meinbild.jpg');
  finally
    JpegImage1.Free;
    bmp.Free;
  end;

MrKnogge 18. Nov 2007 21:53

Re: Qualität eines JPEG-Bildes verringern
 
@Matze
Ja ich bin mir sicher, dachte auch erst, dass es daran liegen könnte.

@Lossy eX
Danke fr den Tip mit dem "DibNeeded" das werde ich mir auf jedenfall mal genauer anschauen.

@bitsetter
Danke, dein Code funktioniert !


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 Uhr.

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