Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Bild aus Internet laden (https://www.delphipraxis.net/37291-bild-aus-internet-laden.html)

Äfan 4. Jan 2005 01:13


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

StanY 4. Jan 2005 01:22

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.

Sprint 4. Jan 2005 03:35

Re: Bild aus Internet laden
 
Zitat:

Zitat von Äfan
Wie mache ich das z.B. mit indy ?

Link

Äfan 4. Jan 2005 20:25

Re: Bild aus Internet laden
 
Thx, funktioniert aber irgendwie net ! Bei euch ? Bei TImage.Create will er irgendwie mehr parameter :gruebel:

Luckie 4. Jan 2005 20:27

Re: Bild aus Internet laden
 
Zitat:

Zitat von die dumme Delphi-Hilfe
Delphi-Quellcode:
constructor Create(AOwner: TComponent); override;


Äfan 13. Apr 2005 17:31

Re: Bild aus Internet laden
 
Funktioniert irgendwie net... Kan mal vielleicht jemand einen kleinen code schreiben, der geht ?

wär nett,

mfg

mr47 13. Apr 2005 18:03

Re: Bild aus Internet laden
 
Hi Äfan. Ich würde dir das empfehlen. Musst nur noch die Adresse/Ziel ersetzen


Delphi-Quellcode:
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;
und dann halt laden
mfg :wink:

Khabarakh 13. Apr 2005 18:10

Re: Bild aus Internet laden
 
Zitat:

Zitat von Äfan
Thx, funktioniert aber irgendwie net ! Bei euch ? Bei TImage.Create will er irgendwie mehr parameter :gruebel:

Wo siehst du da TImage.Create :gruebel:² ?

Dash 13. Apr 2005 18:51

Re: Bild aus Internet laden
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Äfan
Thx, funktioniert aber irgendwie net ! Bei euch ? Bei TImage.Create will er irgendwie mehr parameter :gruebel:

Öhm ja.. :wink:

Äfan 14. Apr 2005 19:04

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

Dash 14. Apr 2005 19:11

Re: Bild aus Internet laden
 
Also ich bin nach dem Beispiel gegangen, das Sprint verlinkt hat.

Zitat:

Zitat von Sprint
Zitat:

Zitat von Äfan
Wie mache ich das z.B. mit indy ?

Link


mr47 14. Apr 2005 20:20

Re: Bild aus Internet laden
 
Zitat:

Zitat von Äfan
Komisch, dass beispiel von Dash geht. Nehme ich allerdings das andere von dieser einen Seite da, gehts net. :gruebel:


thx

IMHO muss man manchmal auf groß und kleinschreinug achten! Vielleicht liegts daran !?

mfg

SirThornberry 14. Apr 2005 20:38

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

Richie1103 2. Feb 2009 16:15

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:
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;
Wie ihr sicher mitbekommen habt, sind es mehrere Bilder bei denen sich nur eine Zahl ändert.

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]

DeddyH 2. Feb 2009 16:32

Re: Bild aus Internet laden
 
Geht es vielleicht so?
Delphi-Quellcode:
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;
Ohne Gewähr, da nur so heruntergetippt.

P.S.: Willkommen in der DP :dp:

Richie1103 3. Feb 2009 07:42

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;

Blackheart 3. Feb 2009 08:35

Re: Bild aus Internet laden
 
Muss nicht bei Ziel auch der entsprechende Dateiname gesetzt werden ?

Richie1103 3. Feb 2009 09:41

Re: Bild aus Internet laden
 
Danke das war der Fehler, Programm funktioniert.
Für spätere hier nochmal Quelltext

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\'+ 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;
Nochmals vielen dank problem gelöst


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