AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Gif Bild aus Stream laden
Thema durchsuchen
Ansicht
Themen-Optionen

Gif Bild aus Stream laden

Ein Thema von Narayana · begonnen am 12. Mai 2005 · letzter Beitrag vom 7. Sep 2006
Antwort Antwort
Narayana
(Gast)

n/a Beiträge
 
#1

Gif Bild aus Stream laden

  Alt 12. Mai 2005, 08:37
Moin,

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

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

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
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 08:54
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?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Narayana
(Gast)

n/a Beiträge
 
#3

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 09:30
Moin,

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

Image1.Picture.Bitmap.LoadFromResourceID(HInstance, 1);
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...
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 10:11
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
  Mit Zitat antworten Zitat
Narayana
(Gast)

n/a Beiträge
 
#5

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 10:20
Habs hinbekommen...

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

...das war auch echt zu einfach...

Danke für die Vorschläge

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


//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;
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#6

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 10:52
Zitat von Narayana:
@marabu: das geht dann sogar ohne handle...wo ich mich doch mit handels noch nicht so auskenne

Res := TResourceStream.Create(Hinstance, Ressourcenname, PChar('RC_DATA'));
Da freue ich mich mit dir.

marabu
  Mit Zitat antworten Zitat
Narayana
(Gast)

n/a Beiträge
 
#7

Re: Gif Bild aus Stream laden

  Alt 12. Mai 2005, 10:57
Naja, vielleicht benutzt man trotzdem handles, aber irgendwie nicht so offensichtlich... naja, du weißt schon
  Mit Zitat antworten Zitat
Katrin_K

Registriert seit: 6. Sep 2006
14 Beiträge
 
Delphi 6 Personal
 
#8

Re: Gif Bild aus Stream laden

  Alt 6. Sep 2006, 20:51
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 {$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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Gif Bild aus Stream laden

  Alt 7. Sep 2006, 00:25
Moin Zusammen,

und in diesem Thread die Lösung:

GIF aus Resource-Datei laden

(falls man über die Suche erst auf diesen Thread trifft )
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 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