Bild von URL Laden und anzeigen

Alle Fragen zur Netzwerkkommunikation
Antworten
kingjin
Beiträge: 4
Registriert: Sa 17. Dez 2011, 17:12

Bild von URL Laden und anzeigen

Beitrag von kingjin »

Hi allerseits,

Mein Problem: Meine Webcam stellt ein Bild unter einer URL (http:\\xyz\Bild.jpg) ins Netz. Dieses Bild will ich nun abfragen und anzeigen (später auch speichern).

Wie ihr seht bin ich ziemlich neu hier und hab noch wenig erfahrung mit Lazarus. Es wäre echt nett wenn ihr mir irgendwie helfen könntet,

Kingjin


P.S. OS: Win7 64bit.

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: Bild von URL Laden und anzeigen

Beitrag von MAC »

such mal nach synapse
binde in uses die unit "httpsend" ein.
Dann kannst du die Funktion

Code: Alles auswählen

HttpGetText(const URL: string; const Response: TStrings): Boolean;


aufrufen.
Gibt den URL ein und bei Response machst du ca folgendes:

Code: Alles auswählen

procedure EineProcedure;
var
 BIldString:TStringList // hier steht Stringlist obwohl eigentlich TStrings vorgeschrieben sind, liegt daran das TStringList abgeleitet von TStrings ist (... = das gleiche ist wie TStrings nur etwas mehr).
begin
HttpGetText('http://www.google.de/images/srpr/logo3w.png',BildString);
BildString.SavetoFile('C:\test1.png');
// das Downloadet die Seite, ob es ein Text ist oder ein Bild sollte dem Programm egal sein (ist am ende sowieso ein haufen nullen und einsen...)
end;


Achso, das speichert ein Bild Lokal.
Du köntest wahrscheinlich auch einfach

Code: Alles auswählen

Image1.LoadfromFile(C:\test1.png'); hinten drannpacken // eventuell warten bis alles gespeichert ist...
.

Gibt aber warscheinlich auch ne ordentlichere Lösung das ganze direkt in in ein Bild anzugeben und nicht erst auf die Festplatte zu schreiben...

Edit: zur gleichen Zeit wurde die frage nochmal gestellt.
Theo hatte eine bessere Idee das direkt in TStream zu laden, damit übergeht man das Speichern. Die verwendung ist ähnlich wie hier beschrieben ...
Siehe viewtopic.php?f=55&t=4425

Code: Alles auswählen

Signatur := nil;

kingjin
Beiträge: 4
Registriert: Sa 17. Dez 2011, 17:12

Re: Bild von URL Laden und anzeigen

Beitrag von kingjin »

Ich habs jetz mal mit HTTPGetBinary versucht:

Code: Alles auswählen

while HttpGetBinary('http://www.google.de/images/srpr/logo3w.png', BildStream) do
  begin
 
  end;


Wenn ich das Ausführe krieg ich einen "External: SIGSEGV" Error, was mach ich falsch? Ist das while richtig gesetzt (soll damit warten bis fertig geladen ist).

Und was mach ich dann mit diesem TStream-Objekt? Kann ich es so verwenden?

Code: Alles auswählen

Image1.Picture.LoadFromStream(BildStream);


Ich hoffe ihr könnt mir weiterhelfen!
Und schon mal danke für den ersten denkanstoß :wink:


kingjin
Beiträge: 4
Registriert: Sa 17. Dez 2011, 17:12

Re: Bild von URL Laden und anzeigen

Beitrag von kingjin »

Hey Danke, der Link hat echt geholfen :idea:

Maik81ftl
Beiträge: 619
Registriert: Mi 9. Mär 2011, 16:34
OS, Lazarus, FPC: Ubuntu10.04 LTS (L 0.9.31.0 FPC 2.4.4)
CPU-Target: 64Bit
Wohnort: seit 01.06.2011 in Wahlstedt

Re: Bild von URL Laden und anzeigen

Beitrag von Maik81ftl »

creed steiger hat geschrieben:Synapse ist exzellent dokumentiert:
NUr beispiele für Lazarsu/fpc sind Mau. :(
Ubuntu 10.04 LTS ist meine Heimat. Lazarus ist meine Sprache :D und der Kreis Segeberg meine LIEBE :D

Antworten