AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia PNG aus Stream in TImage einfügen
Thema durchsuchen
Ansicht
Themen-Optionen

PNG aus Stream in TImage einfügen

Ein Thema von Luki206 · begonnen am 25. Feb 2014 · letzter Beitrag vom 26. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
Luki206
(Gast)

n/a Beiträge
 
#1

PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 20:26
Hi, ich habe ein wenig gegoogled aber habe nichts gefunden wie man eine *.png Datei aus einem Stream in ein Image laden kann. Kann mir jemand da behilflich sein?
Danke
Luki
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 20:32
Ganz einfach mit Delphi-Referenz durchsuchenTPngImage.LoadFromStream

Delphi-Quellcode:
var
  LGraphic : TGraphic;
begin
  LGraphic := TPngImage.Create;
  try
    LGraphic.LoadFromStream( DerStreamMitDemPng );
    Image1.Picture.Assign( LGraphic );
  finally
    LGraphic.Free;
  end;
end;
Du musst aber auch auf Delphi-Referenz durchsuchenTStream.Position achten.
LoadFromStream liest immer von der aktuellen Stream Position.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (25. Feb 2014 um 20:34 Uhr)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#3

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 20:46
Ok danke. Werde ich mir merken
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#4

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 20:49
Ich habe jetzt noch eine Frage aber zu den Ressourcen DLL's. Muss ich jetzt wirklich einen neuen Thread auf machen? Weil ich hätte dann drei Threads da stehen und das sieht nicht gerade gut aus..
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 20:53
Ich habe jetzt noch eine Frage aber zu den Ressourcen DLL's. Muss ich jetzt wirklich einen neuen Thread auf machen? Weil ich hätte dann drei Threads da stehen und das sieht nicht gerade gut aus..
Hat das was mit Streams und einem Png-Image zu tun?

Ja - dann einfach hier weiterfragen
Nein - Neuer Thread

Evtl. suchst du ja auch nach Delphi-Referenz durchsuchenTPngImage.LoadFromResourceId oder Delphi-Referenz durchsuchenTPngImage.LoadFromResourceName
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#6

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 21:05
Ja hat es, denke ich mal. Wenn nicht gerade bescheid sagen und ich mache einen neuen Thread auf
Folgendes: Ich habe jetzt geschafft eine *.png File aus der .dll zu laden nur ist das die Falsche und im Moment sind auch nur zwei Grafiken dort hinterlegt. Wenn ich also mein Programm starte wird das falsche Bild angezeigt. Ich weiß nicht wie ich's erklären soll deshalb jetzt hier mein Code um die Datei zu laden:
Delphi-Quellcode:
procedure TFrmHaupt.LoadPict(ort: Integer);
var
myStream: TResourceStream;
h: Cardinal;
LGraphic: TGraphic;
begin
 h:= LoadLibrary('LW_MP_166.dll');
 mystream := TResourceStream.CreateFromID(h, ort, RT_RCDATA);
 LGraphic := TPngImage.Create;
 try
 LGraphic.LoadFromStream(mystream);
 ImgPlayPau.Picture.Assign(LGraphic);
 finally
   mystream.Free;
   LGraphic.Free;
 end;
end;
Also die Variable ort ruft ja die Datei auf bzw. da wo sie gespeichert ist. Wenn ich da eine 1 drinnen habe kommt die falsche Grafik. Mit anderen Zahlen kommt Ressource nicht gefunden nur weiß ich nicht woran das liegt und ich habe auch schon meine Ressourcen-Namen in der DLL in 1 und 2 geändert und trotzdem geht es nicht. Ich denke aber mal ich machen einen tierisch-großen Fehler oder?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 21:15
Hast du die DLL auch neu erstellt und liegt diese an der richtigen Stelle?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#8

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 21:18
Jap, neu erstellt, liegt im richtigen Ordner bzw. im Verzeichnis meiner *.exe
  Mit Zitat antworten Zitat
michaelthuma
(Gast)

n/a Beiträge
 
#9

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 21:57
Wenn du über ID lädtst dann ist es vonnöten die Resource über ID zu definieren bspw.

Bilder.rc
Code:
#define ID_BILD1 1
#define ID_BILD2 2

ID_BILD1 RCDATA "Borland.jpg"
ID_BILD2 RCDATA "Delphi.jpg"
Die 1 wird beim compilieren der Ressourcen anstatt von IDS_BILD1 eingesetzt. Du kannst eine Ressource entweder mit einer Zahl praktisch der ID oder dem Namen benennen.


Jap, neu erstellt, liegt im richtigen Ordner bzw. im Verzeichnis meiner *.exe

Geändert von michaelthuma (25. Feb 2014 um 22:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: PNG aus Stream in TImage einfügen

  Alt 25. Feb 2014, 22:27
Jupp, genau so ist es.

Und man könnte natürlich auch ohne "Konstanten" arbeiten.
Code:
1 RCDATA "Borland.jpg"
2 RCDATA "Delphi.jpg"
Ansonsten wäre es praktisch, wenn man diese Konstanten auch im Delphi definiert und bei LoadPict oder LoadFromResourceId entsprechend verwendet.
Delphi-Quellcode:
const
  ID_BILD1 = 1;
  ID_BILD2 = 2;
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:12 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