![]() |
Bild aus Internet laden
Hi,
Ich will, das wenn man mein Programm startet, im Fenster ein Bild erscheint. Dieses Bild soll in das objekt TImage mit namen "Image2" vom Server geladen werden. Wie mache ich das z.B. mit indy ? MFG |
Re: Bild aus Internet laden
UrlDownloadToFile ginge imho einfacher. Mit Indy müsstest du wohl eine Anfrage auf die Datei stellen. Dann die Codehappen die du bekommst per FileStream in eine Datei schreiben und selbige laden. Dazu wissen aber sicher andere mehr.
|
Re: Bild aus Internet laden
|
Re: Bild aus Internet laden
Thx, funktioniert aber irgendwie net ! Bei euch ? Bei TImage.Create will er irgendwie mehr parameter :gruebel:
|
Re: Bild aus Internet laden
Zitat:
|
Re: Bild aus Internet laden
Funktioniert irgendwie net... Kan mal vielleicht jemand einen kleinen code schreiben, der geht ?
wär nett, mfg |
Re: Bild aus Internet laden
Hi Äfan. Ich würde dir das empfehlen. Musst nur noch die Adresse/Ziel ersetzen
Delphi-Quellcode:
und dann halt laden
uses URLMon;
procedure TForm1.Button1Click(Sender: TObject); var Datei,Ziel:PChar; begin try Datei := 'http://www.DieSeite/DieDatei.zip'; Ziel := 'C:\Windows\Desktop\DieDatei.zip'; UrlDownloadToFile(nil, Datei, Ziel, 0, nil); except // Fehlermeldung ausgeben end; end; mfg :wink: |
Re: Bild aus Internet laden
Zitat:
|
Re: Bild aus Internet laden
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Bild aus Internet laden
Komisch, dass beispiel von Dash geht. Nehme ich allerdings das andere von dieser einen Seite da, gehts net. :gruebel:
thx |
Re: Bild aus Internet laden
Also ich bin nach dem Beispiel gegangen, das Sprint verlinkt hat.
Zitat:
|
Re: Bild aus Internet laden
Zitat:
mfg |
Re: Bild aus Internet laden
Nur mal so zur Info. Man kann mit den Indys auch in einen Stream herunterladen und mit TImage auch aus einem Stream heraus laden, damit spaart man sich das anlegen einer Temp-datei.
Delphi-Quellcode:
var LHttp: TIdHTTP;
LDestStream: TMemoryStream; LJpg: TJPEGImage; begin LDestStream := TMemoryStream.Create; //MemoryStream für das Bild was wir runterladen LHttp := TIdHTTP.Create(nil); //Instanz des Http-Clients erstellen LHttp.Get('http://www.esfeb-it.de/esfeb-it/previewpics/mpv1.jpg', LDestStream); //bild in den Memorystream herunterladen LHttp.Free; //jetzt brauche wir den http-client nicht mehr, also wird er freigegeben LDestStream.Position := 0; //stream-position auf 0 setzen LJpg := TJPEGImage.Create; //Jpeg-Instanz erstellen LJpg.LoadFromStream(LDestStream); //das Jpeg-Bild aus unserem stream laden (also das heruntergeladene Bild aus dem Stream holen) Image1.Picture.Assign(LJpg); //unser jpg dem TImage zuweisen LJpg.Free; //jpeg-bild freigeben LDestStream.Free; //memory-stream frei geben |
Re: Bild aus Internet laden
Hi ich bin neu, und habe ein ähnliches Problem.
will auch Bilder aus dem netz laden aber es sollen mehrere sein und cih wollte es mit einer for to do schleife realisieren. Hier der quelltext:
Delphi-Quellcode:
Wie ihr sicher mitbekommen habt, sind es mehrere Bilder bei denen sich nur eine Zahl ändert.
procedure TForm1.Button1Click(Sender: TObject);
var Ziel,Datei,s:PChar; i:Integer; begin For i:=1 to 168 do begin try s:=InttoSTr(i); Datei := 'link'+ s[1] + '.png'; Ziel := 'C:\Documents and Settings\User\Desktop\Neuer Ordner'; UrlDownloadToFile(nil, Datei, Ziel, 0, nil); except // Fehlermeldung ausgeben end; end; end; Es kommt folgende Fehlermeldung
Code:
[Fehler] Unit1.pas(36): Inkompatible Typen: 'String' und 'PAnsiChar'
es wäre auch praktisch wenn ihr noch einen Befehl mit dazu tun könntet der mir die png Bilder gleich in jpeg umwandelt. Hoffe auf baldige kreative Hilfe[delphi] |
Re: Bild aus Internet laden
Geht es vielleicht so?
Delphi-Quellcode:
Ohne Gewähr, da nur so heruntergetippt.
procedure TForm1.Button1Click(Sender: TObject);
var Ziel,Datei: string; i:Integer; begin For i:=1 to 168 do begin try Datei := Format('link%d.png',[i]); Ziel := 'C:\Documents and Settings\User\Desktop\Neuer Ordner'; UrlDownloadToFile(nil, PAnsiChar(Datei), PAnsiChar(Ziel), 0, nil); except on E: Exception do MessageBox(Handle,PAnsiChar(E.Message),'Fehler',MB_OK or MB_ICONERROR); end; end; end; P.S.: Willkommen in der DP :dp: |
Re: Bild aus Internet laden
Vielen Dank für den Quellcode.
Hab mal den Link bei mir durch das original ersetzt. Das Programm läuft, mach aber irgendwie gar nichts ^^. Lädt mir die Bilder nicht runter. (zummindestens erscheinen keine neuen Datein in dem ordner). sieht irgend jemand nen Fehler?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Ziel,Datei: string; i:Integer; begin For i:=1 to 168 do begin try Datei := Format('http://wowdata.buffed.de/img/icons/wow/64/inv_potion_%d.png',[i]); Ziel := 'C:\Documents and Settings\User\Desktop\Neuer Ordner'; UrlDownloadToFile(nil, PAnsiChar(Datei), PAnsiChar(Ziel), 0, nil); except on E: Exception do MessageBox(Handle,PAnsiChar(E.Message),'Fehler',MB_OK or MB_ICONERROR); end; end; |
Re: Bild aus Internet laden
Muss nicht bei Ziel auch der entsprechende Dateiname gesetzt werden ?
|
Re: Bild aus Internet laden
Danke das war der Fehler, Programm funktioniert.
Für spätere hier nochmal Quelltext
Delphi-Quellcode:
Nochmals vielen dank problem gelöst
procedure TForm1.Button1Click(Sender: TObject);
var Ziel,Datei: string; i:Integer; begin For i:=1 to 168 do begin try Datei := Format('http://wowdata.buffed.de/img/icons/wow/64/inv_potion_%d.png',[i]); Ziel := 'C:\Documents and Settings\User\Desktop\Neuer Ordner\'+ InttoStr(i) + '.png'; UrlDownloadToFile(nil, PAnsiChar(Datei), PAnsiChar(Ziel), 0, nil); except on E: Exception do MessageBox(Handle,PAnsiChar(E.Message),'Fehler',MB_OK or MB_ICONERROR); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz