Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Gif Bild aus Stream laden (https://www.delphipraxis.net/45772-gif-bild-aus-stream-laden.html)

Narayana 12. Mai 2005 07:37


Gif Bild aus Stream laden
 
Moin,

ich habe ein Gif Bild in einer Ressource in das Programm eingebunden.
Wenn ich das anzeigen will kann ich nicht

Delphi-Quellcode:
Image1.Picture.Bitmap.loadfromStream
verwenden, weil er dann mit dem Gif nicht klarkommt.

Ich habe die Gif Unit eingebunden, und wenn ich das Bild erst auf den Rechner speicher, und dann aus der Datei lade, dann funktioniert es auch.

Ich habe nun überlegt die Grafik in die Zwischenablage zu kopieren. Geht das irgendwie (aus einem TRessourceStream)?

Ich habe es mit

Delphi-Quellcode:
Clipboard.assign();
probiert, aber ich habe noch nichts gefunden, was ich da eintragen kann, so dass die Typen passen (weil es ja aus dem Stream kommt)

Die Uses habe ich bereits um ClipBrd erweitert (daran kanns auch nicht liegen).

Danke im Vorraus für eure Vorschläge :bounce1:

Sharky 12. Mai 2005 07:54

Re: Gif Bild aus Stream laden
 
Zitat:

Zitat von Narayana
Moin,

ich habe ein Gif Bild in einer Ressource in das Programm eingebunden.
Wenn ich das anzeigen will kann ich nicht

Code:
Image1.Picture.Bitmap.loadfrom[b]Stream[/b]

Hai,

warum versuchst Du denn das Bild aus einem Stream zu laden wenn es doch in einer Rssource liegt?

Wäre da [oh].LoadFromResourceID();[/oh] besser?

Narayana 12. Mai 2005 08:30

Re: Gif Bild aus Stream laden
 
Moin,

wenn ich das mit LoadFromRessourceID mache, stürte er mit ner Zugriffsverletzung ab...

Delphi-Quellcode:
Image1.Picture.Bitmap.LoadFromResourceID(HInstance, 1);
Zitat:

Zitat von Sharky
warum versuchst Du denn das Bild aus einem Stream zu laden wenn es doch in einer Rssource liegt?

Ich habe das nur dehalb in einem TRessourceStream, weil man das Bild damit immerhin auf die Festplatte speichern kann...

Mein größtes Problem ist glaube ich wirklich nur, dass er kein gif kennt...
bzw, dass er das erst zur laufzeit kennt.

Das ist ein einfaches Bild, was ich nur am Anfang einmal lade, und dann niewieder verändere, aber dadurch, dass Dalphi normal kein gif kennt, muss das laden halt zur laufzeit geschehen... :wall:

marabu 12. Mai 2005 09:11

Re: Gif Bild aus Stream laden
 
So müsste es gehen - mit der unit GIFImage:

Delphi-Quellcode:
{$R gif.res}

uses
  GifImage;
 
procedure Test;
const
  GifResName = 'marabu';
var
  gif: TGifImage;
  h: THandle;
begin
  gif := TGifImage.Create;
  image := TImage.Create;
  h := GetModuleHandle(PChar(ParamStr(0)));
  gif.LoadFromResourceName(h, GifResName);
  image.Picture.Bitmap.Assign(gif.bitmap);
  gif.Free;
end;
Grüße vom marabu

Narayana 12. Mai 2005 09:20

Re: Gif Bild aus Stream laden
 
Habs hinbekommen...

Das Bild wird nun in ein TGIFImage geladen, das geht aus dem Ressourcestream heraus...
Danach kann man dem TImage das GifImage zuweisen :bouncing4:

...das war auch echt zu einfach... :roll:

Danke für die Vorschläge :-D

@marabu: das geht dann sogar ohne handle...wo ich mich doch mit handels noch nicht so auskenne :zwinker:


//EDIT:

Delphi-Quellcode:
procedure test;
var
  Res : TResourceStream;
  Bild : TGIFImage;
begin
  Res := TResourceStream.Create(Hinstance, Ressourcenname, PChar('RC_DATA'));
  Bild := TGIFImage.Create;
  try
    Bild.LoadFromStream(res);
  finally
    Res.Free;
  end;

  Image1.Picture.Graphic := Bild;
  Bild.Free;
end;

marabu 12. Mai 2005 09:52

Re: Gif Bild aus Stream laden
 
Zitat:

Zitat von Narayana
@marabu: das geht dann sogar ohne handle...wo ich mich doch mit handels noch nicht so auskenne :zwinker:

Res := TResourceStream.Create(Hinstance, Ressourcenname, PChar('RC_DATA'));

Da freue ich mich mit dir.

marabu

Narayana 12. Mai 2005 09:57

Re: Gif Bild aus Stream laden
 
Naja, vielleicht benutzt man trotzdem handles, aber irgendwie nicht so offensichtlich... naja, du weißt schon :zwinker: :oops:

Katrin_K 6. Sep 2006 19:51

Re: Gif Bild aus Stream laden
 
hallo

ich versuche auch gif´s aus einer selbst angelegten resource datei zu laden, aber bei mir funktioniert es nicht.

Die gifs habe ich in eine resourcedatei gepackt.
textdatei (datei.rc) mit
"
100 RC_DATA "Bildname1.gif"
101 RC_DATA "Bildname2.gif"
102 RC_DATA "Bildname3.gif"
...
" erstellt. Dann mit brcc32.exe compiliert (brcc32.exe datei.rc) und datei.RES erhalten.

Mit
Delphi-Quellcode:
{$R datei.RES}
habe ich die Datei in mein Projekt eingebunden.
Für Ressourcenname habe ich auch Bildname1.gif oder Bildname1 oder 100 angegeben.
Mit deiner test-procedure habe ich jetzt versucht das gif zu laden.
Leider bekomme ich immer nur eine Fehlermeldung.
Resource Bildname1.gif wurde nicht gefunden oder Resource Bildname1 wurde nicht gefunden oder Resource 100 wurde nicht gefunden
was mache ich falsch?

gruss katrin

Christian Seehase 6. Sep 2006 23:25

Re: Gif Bild aus Stream laden
 
Moin Zusammen,

und in diesem Thread die Lösung:

GIF aus Resource-Datei laden

(falls man über die Suche erst auf diesen Thread trifft ;-))


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 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