Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Bilder aus web laden

0 views
Skip to first unread message

Heino Tiedemann

unread,
Jan 6, 2003, 10:47:48 AM1/6/03
to
Hallo,

wie kann ich ein Bild (jpg) aus dem Intnet laden und anschl. lokal speichern?

Ich finds nicht durch google (warscheinlich zu trivial). Welche Klassen
brauche ich?
- java.awt.image.BufferedImage
- java.awt.Graphics
helfen mir da irgendwie nicht weiter.

Sonst weiss ich nicht, wo ich suchen soll. Und vor allem *wonach*.

Ja, und die FAQ hab ich
gelesen. (http://de.geocities.com/uweplonus/faq/faq.html)
Wenns da drin ist, hab ich's bisher übersehen.

TIA ... Heino

Joseph Doer

unread,
Jan 6, 2003, 10:54:02 AM1/6/03
to

"Heino Tiedemann" <rotkaps_...@gmx.de> schrieb im Newsbeitrag
news:EyhS9.3$OC5....@news.ecrc.de...

> Hallo,
>
> wie kann ich ein Bild (jpg) aus dem Intnet laden und anschl. lokal
speichern?
>
> Ich finds nicht durch google (warscheinlich zu trivial). Welche Klassen
> brauche ich?
> - java.awt.image.BufferedImage
> - java.awt.Graphics
> helfen mir da irgendwie nicht weiter.
>
> Sonst weiss ich nicht, wo ich suchen soll. Und vor allem *wonach*.

Wie wäre es zB. mit dem Sun-Tutorial:
http://java.sun.com/docs/books/tutorial/
http://java.sun.com/docs/books/tutorial/2d/problems/index.html

Joe


Ingo R. Homann

unread,
Jan 6, 2003, 11:06:15 AM1/6/03
to
Hi!

Heino Tiedemann schrieb:

Ergänzend zu Josephs Vorschlag:

Die von dir angeführten Klassen brauchst Du nicht! Es geht viel
einfacher, da Du das Bild ja nicht dekomprimieren mußt. Du kannst es
einfach binär (byte-Array oder so) aus einer java.net.URL/-Connection
(.getInputStream()) auslesen und 1:1 abspeichern.

Hth,
Ingo

Frank Theimer

unread,
Jan 6, 2003, 12:26:17 PM1/6/03
to

Hi,

nicht so kompliziert...
1. Erzeuge ein passendes URL-Object
2. öffne eine Verbindung URL#openConnection()
3. lese den InputStream
4. schreibe diesen Stream in ein File


Ausschnitt:
URL url = new URL (http://www.foo.de/logo.jpg);
URLConnection con = url.openConnection ();
FileInputStream fis = con.getInputStream ();
FileOutputStream fos = new FileOutputStream (new
File(target));
int read = 0;
while ((read=fis.read()) != -1)
fos.write (read);
fis.close();
fos.flush();fos.close()

hatte ich gerade im Editor rumfahren...

;-)
Frank


Frank Theimer

unread,
Jan 6, 2003, 12:30:37 PM1/6/03
to
Frank Theimer wrote:
> Ausschnitt:

ups, natürlich in Anführungszeichen:

> URL url = new URL ("http://www.foo.de/logo.jpg");

>[...]
> fos.flush();fos.close();
das letzte ';' auch...

Frank


Heino Tiedemann

unread,
Jan 7, 2003, 3:56:04 AM1/7/03
to
"Frank Theimer" <frank....@pixeldata.de> wrote:

> nicht so kompliziert...
> 1. Erzeuge ein passendes URL-Object
> 2. öffne eine Verbindung URL#openConnection()
> 3. lese den InputStream
> 4. schreibe diesen Stream in ein File

Danke.
Beim erzeugen des URL-Objects kann ich ja auch andere Konstruktoren
nehmen. Zum Beispiel (String protocol, String host, int port, String
file), um den URL in seinen Einzelteilen zu übergeben. Was mir aber fehlt:
Wo kann ich einen Proxy angeben?

Ich komm hier nämlich nur über einen Proxy raus.

Folgende Fehlermeldung bestätigt das:

java.net.ConnectException: Operation timed out: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:350)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:137)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:124)
at java.net.Socket.<init>(Socket.java:268)
at java.net.Socket.<init>(Socket.java:95)
at sun.net.NetworkClient.doConnect(NetworkClient.java:45)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:334)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:520)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:270)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:280)
at sun.net.www.http.HttpClient.New(HttpClient.java:292)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:417)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:510)
at ImageGrabber.go(ImageGrabber.java:32)
at ImageGrabber.main(ImageGrabber.java:25)
Exception in thread "main"

Andreas Senft

unread,
Jan 7, 2003, 5:50:57 AM1/7/03
to
Heino Tiedemann wrote:
>
> Beim erzeugen des URL-Objects kann ich ja auch andere Konstruktoren
> nehmen. Zum Beispiel (String protocol, String host, int port, String
> file), um den URL in seinen Einzelteilen zu übergeben. Was mir aber fehlt:
> Wo kann ich einen Proxy angeben?
>

IMHO über System properties. Schau mal hier:
http://java.sun.com/j2se/1.4/docs/guide/net/properties.html
Das sollte dir weiterhelfen.

Gruß,
Andreas

Heino Tiedemann

unread,
Jan 7, 2003, 9:52:17 AM1/7/03
to
Andreas Senft <Andrea...@csfps.de> wrote:

> Heino Tiedemann wrote:
> >
> > Beim erzeugen des URL-Objects kann ich ja auch andere Konstruktoren
> > nehmen. Zum Beispiel (String protocol, String host, int port, String
> > file), um den URL in seinen Einzelteilen zu übergeben. Was mir aber fehlt:
> > Wo kann ich einen Proxy angeben?
> >
>
> IMHO über System properties.

Ah. Danke. So isses.

Irgendwie alles dezentralisiert. Ich hätte es bei URL
oder URLConnector erwartet.

bis denn denn Heino

0 new messages