![]() |
Minimalistische GIF-Komponente?
Guten Abend,
Ich bin auf der Suche nach einer Komponente, die nichts weiter können soll als ein GIF-Bild (einen der Frames) möglichst ressourcenschonend auf ein TBitmap auszugeben. Da es sich um sehr große Bilder handelt, darf ich keinen Speicher verschwenden *g* TjvGifImage und TGifImage benutzen interne Bitmaps zur Darstellung der Grafik, reicht es dann, wenn ich TargetBMP den Handle des internen Bitmaps zuweise und anschließend die GIF-Graphik freigebe? Wird dadurch nicht der Handle ungültig? Hier mal der Code, den ich zum laden verwende (kann man da noch was verbessern? :gruebel:)
Delphi-Quellcode:
Tausend Dank schonmal fürs lesen!
procedure TForm1.LoadResourceGraphic(ResName: String;
SrcFormat: TPictureFormat; TargetBMP: TBitmap); var RS: TResourceStream; SrcGraphic: TGraphic; begin SrcGraphic := nil; RS := TResourceStream.Create(HINSTANCE, ResName, 'FORGEPIC'); try case SrcFormat of TBMP: TargetBMP.LoadFromStream(RS); TGIF: begin SrcGraphic := TJvGifImage.Create; end; TJPG: begin SrcGraphic := TJPEGImage.Create; end; end; If Assigned(SrcGraphic) then try SrcGraphic.LoadFromStream(RS); TargetBMP.Width := SrcGraphic.Width; TargetBMP.Height := SrcGraphic.Height; TargetBMP.Canvas.Draw(0, 0, SrcGraphic); finally SrcGraphic.Free; end; finally RS.Free; end; end; Gruß, Dani |
Re: Minimalistische GIF-Komponente?
Code:
kann man glaub ich durch
SrcGraphic.LoadFromStream(RS);
TargetBMP.Width := SrcGraphic.Width; TargetBMP.Height := SrcGraphic.Height; TargetBMP.Canvas.Draw(0, 0, SrcGraphic);
Code:
ersetzen...
TargetBMP.Assign(SrcGraphic);
|
Re: Minimalistische GIF-Komponente?
Da ist zwar weniger Schreibarbeit, macht das Programm aber weder schneller noch braucht es weniger Speicher...
135 MB Speicherverbrauch, um ein 8.3 MB großes Bild (16 Farben Bitmap -> 200kb großes GIF ) zu drucken finde ich nicht gerade akzeptabel. :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02: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