![]() |
GDI+, Grafik temporär abspeichern
Hallo,
ich beschäftige mich seit kurzem mit der GDI+ und bin auch schon ganz glücklich damit. Allerdings habe ich ein Problem: Ich lege ein Bitmap an und versuche dort den Inhalt einer TPaintBox zu speichern. Intern in der GDI+ habe ich bisher jedoch keine möglichkeit gefunden dies zu realisieren. Bisher versuche ich das mit der normalen GDI (vereinfachtes Beisp):
Delphi-Quellcode:
Dies funktioniert jedoch nicht und ich verstehe nicht wieso?? Es gibt einfach keine Ausgabe.
var
GrpGraphics: GGraphics; GrpTemp: GGraphics; BmpTemp: GBitmap; begin try GrpGraphics := GGraphics.Create(pbMain.Canvas.Handle); BmpTemp := GBitmap.Create(200, 200); // Temp. Graphics Object um an den HDC der Bitmap ranzukommen GrpTemp := GGraphics.Create(BmpTemp); // Bereich aus der PaintBox auf das Bitmap blitten BitBlt(GrpTemp.GetHDC, 0, 0, 200, 200, pbMain.Canvas.Handle, 50, 50, SRCCOPY); GrpTemp.Free; // Bitmap inhalt in die PaintBox zeichnen GrpGraphics.DrawImage(BmpTemp, 100, 100); finally GrpGraphics.Free; BmpTemp.Free; end; Danke im Voraus! mfg flo |
Re: GDI+, Grafik temporär abspeichern
Da du DCs verwendest, kannst du die Grafiken auch in die normalen Bitmaps kopieren.
Delphi-Quellcode:
Ach, und ich galaube dein BitBlt-Aufruf ist nicht ganz richtig. Du kopierst die Grafik in ein Bitmap das du gleich danach wieder freigibst. :gruebel:
uses Graphics;
Bitmap:=TBitmap.Create; // Bitmap richtig einstellen Bitmap.PixelFormat:=pf24Bit; Bitmap.Width:=200; Bitmap.Height:=200; BitBlt(Bitmap.Canvas.Handle,0,0,200,200,Dein_DC,50,50,SRCCOPY); // und irgendwann Bitmap.Free; |
Re: GDI+, Grafik temporär abspeichern
Zitat:
Zitat:
Das Graphics-Objekt benutze ich ja nur, um den DC von dem Bitmap zu erhalten, da dies in der GDI+ (meines wissens) nicht anders geht. Danach zeichne ich das Bitmap wieder und kann es ja dann auch wieder freigeben:
Delphi-Quellcode:
GrpGraphics.DrawImage(BmpTemp, 100, 100);
finally GrpGraphics.Free; BmpTemp.Free; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:55 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