Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Bild verlustfrei verkleinen TGraphi32 (https://www.delphipraxis.net/77519-bild-verlustfrei-verkleinen-tgraphi32.html)

Karstadt 20. Sep 2006 17:10


Bild verlustfrei verkleinen TGraphi32
 
Hallo.

Delphi-Quellcode:
procedure TForm1.Resizepicture(var Datei: TJpegImage; width, height: Integer);
var bmp:TBitmap;
begin
   Try
     bmp:=TBitmap.Create;
     try
     If Datei.width>Datei.Height then
     begin
       bmp.width:=width;
       bmp.height:=height;
     end
     else
     begin
        bmp.width:=height;
        bmp.Height:=width;
     end;

     bmp.canvas.StretchDraw(Rect(0,0,bmp.width,bmp.height),Datei);
     Datei.assign(bmp);

     finally
       bmp.free;
     end;

   except
     on e:exception do
     begin
       beep;
     end;
   end;
end;
Nun wenn es sich um kleine Bilder handelt 100x75 wird das bild pixelig.. Die Anwendung IrfanView macht das viel besser!

Ich habe mir wurde die TGrafik32 empfohlen. Da ich in diese Koponente neu bin wollte ich fragen, wie ich ein Bild verkleinen kann mit TGraphi32.

hat jemand ein Beispiel? Danke

Hador 20. Sep 2006 17:39

Re: Bild verlustfrei verkleinen TGraphi32
 
Kurz gesagt: Es ist nicht möglich ein Bild beliebig, verlustfrei zu verkleinern.

Ansonsten guck dir aber zum verkleinern die TBitmap32.Draw-Methode an.

DGL-luke 20. Sep 2006 17:43

Re: Bild verlustfrei verkleinen TGraphi32
 
guckstu hier:

Hier im Forum suchenTBitmap32 Resampler

verlustfreies skalieren ist per definitionem bei rastergrafik leider nicht möglich; dafür empfehle ich vektorbasierte grafikformate, zum Beispiel SVG ;)

Karstadt 20. Sep 2006 19:14

Re: Bild verlustfrei verkleinen TGraphi32
 
Problem ist nur. wenn ich eine TJPEG übergebe muss ich aus die verkleinte JPEG habe. Ds kann ich leider nicht.

DGL-luke 22. Sep 2006 18:56

Re: Bild verlustfrei verkleinen TGraphi32
 
TBitmap32 kann JPEG in Datei speichern, allerdings nur "rudimentär", du hast also keinerlei Kompressionsoptionen. Dafür brauchst du eine entsprechende Extra-Klasse, zum Beispiel TJPEGImage aus der (mitgelieferten) unit jpeg. Ich hatte in einem anderen Thread schon mal Pseudocode zur Konvertierung TBitmap32->TJEGImage geschrieben, glaube ich, ich suche das mal raus. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.

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