Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi JPEG Komprimieren (https://www.delphipraxis.net/124877-jpeg-komprimieren.html)

draeger1980 26. Nov 2008 18:30


JPEG Komprimieren
 
Hi,

ich möchte ein vorhandenes JPG Komprimieren, kann mir da einer helfen ?

mkinzler 26. Nov 2008 18:36

Re: JPEG Komprimieren
 
Ein JPeg ist doch schon komprimiert :gruebel:

himitsu 26. Nov 2008 19:02

Re: JPEG Komprimieren
 
Wozu willst du das denn machen?

Vorgänger hat's schon erwähnt

Was du aber noch machen könntest (wenn die Möglichkeit esteht):
- Auflösung verringern (weniger Pixel = kleinere Datei)
hier wird das Bild (die Abmessung) aber auch kleiner
- JPeg-Komprimierung vergrößeren (je größer, desto kleiner die Datei)
hierbei wird das Bild unschärfer

draeger1980 26. Nov 2008 20:24

Re: JPEG Komprimieren
 
Ich möchte ein vorhandenes JPG in ein stärker komprimiertes , umwandeln.

Eigentlich nichts wildes , nehmen wir mal an :

JPG ist in n% Komprimiert worden, ist aber nicht genug komprimiert da einige Internetdienste Bilder nur mit einer bestimmten mindest größe zuläßt.

JPG is in 640x480 Komprimiert worden, soll aber in 320x240 umgewandelt werden.

danke für die hilfe.....

mkinzler 26. Nov 2008 20:31

Re: JPEG Komprimieren
 
Das hat aber nichts mit Kompression zu tun, sondern ist eine Verkleinerung des Bildes

e-gon 26. Nov 2008 20:57

Re: JPEG Komprimieren
 
Hier mal eine Möglichkeit für Dein Problem:

Delphi-Quellcode:
procedure MakeSmallJPEG(PicWidth, PicHeight: Integer; FileName: string;
  Quality: TJPEGQualityRange; Original: TPicture);
var
  BMP: TBitmap;
  JPEG: TJPEGImage;
begin
  // leeres Bitmap erstellen
  BMP:= TBitmap.Create;
  // leeres JPEG erstellen
  JPEG:= TJPEGImage.Create;
  try
    // Sollgröße des späteren JPEGs einstellen
    BMP.Width:= PicWidth;
    BMP.Height:= PicHeight;
    // Orginalbild auf die Sollgröße verkleinern (oder vergrößern, wenn Orginal kleiner ist!)
    BMP.Canvas.StretchDraw(Rect(0, 0, PicWidth, PicHeight-1), Original.Graphic);

    // Komprimierungsrate des neuen JPEGs einstellen
    JPEG.CompressionQuality:= Quality;
    // Bitmap in das noch leere JPEG kopieren
    JPEG.Assign(BMP);
    // neues JPEG unter Filename speichern
    JPEG.SaveToFile(FileName);
  finally
    // Speicher von Bitmap und JPEG wieder freigeben
    BMP.Free;
    JPEG.Free;
  end;
end;
Aufgerufen wird das ganze dann so:

Delphi-Quellcode:
MakeSmallJPEG(320 {Wunschbreite}, 240 {Wunschhöhe}, 'C:\Test.jpg' {Dateiname}, 75 {Komprimierungsrate}, Image1.Picture {Bild von Image1 als Orginal});
Erziehlt zwar keine hochwertigen Ergebnisse, ist aber ohne fremde Komponenten möglich...

[edit=Luckie]Wer deaktiviert denn den BBCode u nd nutzt dann Delphi-Tags? Mfg, Luckie[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:01 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