Delphi-PRAXiS
Seite 2 von 2     12   

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)

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 14:09 Uhr.
Seite 2 von 2     12   

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