![]() |
TBitmap32 einem TJPEGImage zuweisen
Hallo!
Wie ich schon in einem anderen Thread geschrieben habe, arbeite ich mit einem TBitmap32 um Bilder geglättet zu verkleinern. Nun möchte ich ein Bitmap vom Typ TBitmap32 einem TJPEGImage zuweisen. Wie muss das korrekte Typencasting lauten?? Das hier ...
Delphi-Quellcode:
... funktioniert zumindest nicht :cry:
jpeg.Assign(bmp);
Danke für eure Unterstützung! |
Re: TBitmap32 einem TJPEGImage zuweisen
\\edit: War Vollquatsch... :stupid:
|
Re: TBitmap32 einem TJPEGImage zuweisen
Schau dir mal die Methode DrawTo von TBitmap32 an. Damit sollte sich glaube ich was machen lassen.
|
Re: TBitmap32 einem TJPEGImage zuweisen
Klappt nicht so richtig ...
Delphi-Quellcode:
Das dabei erzeugte JPEG-File hat zwar die richtige Größe, ist aber nur weiß :gruebel:
...
jpeg := TJPEGImage.Create; bmp := TBitmap.Create; bmp.Width := b.Width; bmp.Height := b.Height; b.DrawTo(bmp.Handle, b.BoundsRect, b.BoundsRect); //b ist vom Typ TBitmap32 jpeg.Assign(bmp); jpeg.CompressionQuality := 80; jpeg.SaveToFile('d:\neu.jpg'); ... |
Re: TBitmap32 einem TJPEGImage zuweisen
Machs so:
Delphi-Quellcode:
Das müsste gehen.
jpeg := TJPEGImage.Create;
bmp := TBitmap.Create; bmp.assign(b); jpeg.Assign(bmp); jpeg.SaveToFile('d:\neu.jpg'); bmp.free; jpeg.free; |
Re: TBitmap32 einem TJPEGImage zuweisen
JA ... es funzt! Danke ;)
edit: hatte erst was verwechselt |
Re: TBitmap32 einem TJPEGImage zuweisen
Ja, ich weiß, aber bei mit konnte ich ein TBitmap32 einem TBitmap zuordnen.
|
Re: TBitmap32 einem TJPEGImage zuweisen
Zitat:
Code:
Da hätte das jpeg stehen müssen ;)
b.DrawTo([b]bmp[/b].Handle, b.BoundsRect, b.BoundsRect);
\\edit: Und das jpeg.Assign(bmp); muss raus, und das jpeg muss vorher auf die richtige Größe gesetzt werden. \\nochmal: Öhm, Wheelie, du hast ja auch ein bmp als Zwischenspeicher drin. Müsste doch aber auch ohne gehen, bei Verwendung von DrawTo, oder? \\uuuund nochmal: Okay, es scheint wohl nicht so ohne weiters zu gehen, da TJPEGImage kein Handle hat, das man DrawTo übergeben könnte... zu schade auch. Dann eben mit TBitmap dazwischen (is aber hässlich *möö* ;)) (Evtl. könnte man mit einem Memorystream was drehen!) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:51 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