Einzelnen Beitrag anzeigen

Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#1

Minimalistische GIF-Komponente?

  Alt 17. Nov 2004, 21:00
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? )

Delphi-Quellcode:
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;
Tausend Dank schonmal fürs lesen!

Gruß,
Dani
Dani H.
  Mit Zitat antworten Zitat