Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi gif (animated) aus Resource-Dateie in TImage laden (https://www.delphipraxis.net/25516-gif-animated-aus-resource-dateie-timage-laden.html)

Karsten 7. Jul 2004 23:06


gif (animated) aus Resource-Dateie in TImage laden
 
Das Arbeiten mit Jpegs und Resource-Dateien ist ja recht einfach...

in RC:
------

Code:
Picture  JPEG  "..\Bilder\Picture.jpg"
zum Auslesen:
-------------

Code:
var
  TempJpeg: TJpegImage;
  ResStream: TResourceStream;

begin
  ResStream := TResourceStream.Create(HInstance, 'Picture', 'JPEG');
  TempJpeg := TJpegImage.Create;

  try
    TempJpeg.LoadFromStream(ResStream);
    Image.Picture.Bitmap.Assign(TempJpeg);

  finally
    FreeAndNil(ResStream);
    FreeAndNil(TempJpeg);

  end;
end;
nur wie funktioniert das bei gif-Dateien (animated) ? So ganz nebenbei, die unit GIFImage ist vorhanden, womit gif-Dateien in TImage unterstützt werden.

Ein laden der gif-Datei mit:

Code:
Image.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'GIFPicture.gif');
ist problemlos möglich, nur ich hätte es dann doch lieber über die Resource-Datei.

Danke und Gruß,

Karsten

Dani 7. Jul 2004 23:43

Re: gif (animated) aus Resource-Dateie in TImage laden
 
Moin,

Ersetze 'JPEG' durch 'GIFIMG' und es sollte gehen.
in RC:
------

Code:
Picture  GIFIMG  "..\Bilder\Picture.gif"
zum Auslesen:
-------------

Delphi-Quellcode:
 
var
  TempGif: TGifImage;
  ResStream: TResourceStream;

begin
  ResStream := TResourceStream.Create(HInstance, 'Picture', 'GIFIMG');
  TempGif := TGifImage.Create;

  try
    TempGif.LoadFromStream(ResStream);
    Image.Picture.Bitmap.Assign(TempGif);

  finally
    FreeAndNil(ResStream);
    FreeAndNil(TempGif);

  end;
end;

himitsu 8. Jul 2004 16:50

Re: gif (animated) aus Resource-Dateie in TImage laden
 
Ich kann mich ja täuchen, aber mir ist so, als wenn TImage keine "animierten" GIF's kann, auch nicht mit Hilfe von der GIFImage-Unit.

Aber du kannst es ja mal mit einer anderen Komponente machen - Torry hat da wohl was passendes, was animierte GIF's anzeigen kann.


Und wenn du dann mal eine Komponente hast, die animierte GIF's anzeigt, dann kannst du ja mal Dani's Vorschlag darauf anwenden.

Karsten 8. Jul 2004 19:02

Re: gif (animated) aus Resource-Dateie in TImage laden
 
@Dani,

danke erst einmal für Deine Antwort, jetzt lässt sich die gif-Datei aus der Res-Datei laden. Nur es bewegt sich nichts.

@himitsu

mit
Code:
Image.Picture.LoadFromFile(PChar(ExtractFilePath(ParamStr(0))) + 'GIFPicture.gif');
werden auch Animationen unterstützt.

Karsten 8. Jul 2004 19:19

Re: gif (animated) aus Resource-Dateie in TImage laden
 
es geht doch..., das '.Bitmap' war zuviel.

Danke an alle !

Gruß,
Karsten

Code:
var
  TempGif: TGifImage;
  ResStream: TResourceStream;

begin
  ResStream := TResourceStream.Create(HInstance, 'Picture', 'GIFIMG');
  TempGif := TGifImage.Create;

  try
    TempGif.LoadFromStream(ResStream);
-> Image.Picture.Assign(TempGif);
  finally
    FreeAndNil(ResStream);
    FreeAndNil(TempGif);

  end;
end;

himitsu 8. Jul 2004 19:27

Re: gif (animated) aus Resource-Dateie in TImage laden
 
Na dann ist's ja gut - mir war halt nur so, als wenn TImage nur EINE Bildebene verwalten kann :roteyes:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:13 Uhr.

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