# Mit Applet Bild von einer anderen HP darstellen



## The_S (1. Jun 2005)

Kann ich mit einem Applet ein Bild von einer anderen HP darstellen, ohne es zu signieren? Bzw. kann ich das Bild (wechselt regelmäßig) irgendwie in eine HTML Seite auf meinen Server einbinden und diese Seite dann von meinem Applet aus aufrufen?


----------



## L-ectron-X (1. Jun 2005)

Warum willst du das denn mit einem Applet machen, wenn ein einfacher Deeplink auf die Webseite genügt?


----------



## The_S (1. Jun 2005)

Weil ich eine Bildergallerie programmiere und da möchte ich dann die Bilder einbauen.


----------



## Kian (1. Jun 2005)

```
URL imgURL = new URL(pfadZumBild);

MediaTracker tracker = new MediaTracker(this); // Nötig da der Thread einfach weiterläuft ohne auf das Bild zu warten!

Image img = getImage(imgURL);

tracker.addImage(img,0);

try
{
  tracker.waitForAll();
}catch(InterruptedException ix){}
```

Paint

```
g.drawImage(img,...);
```

Man kann den Tracker weglassen, wenn man das Bild in der paint() laden lässt, denn die wartet selbst (zumindestens beim Start des Applets).

Du kannst auch alle Bilder der Gallerie vorladen, in ein Image[] setzen und die einzelnen Bilder nach der Reihe aufrufen.


----------



## The_S (1. Jun 2005)

Leider nein, da bekomm ich ne SecurityException ... :x  ???:L


----------



## Sky (1. Jun 2005)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Leider nein, da bekomm ich ne SecurityException ... :x  ???:L


Weil das Applet nur mit dem Server 'reden' darf, von dem es auch geladen wurde...


----------



## L-ectron-X (1. Jun 2005)

Im FAQ-Bereich gibts ein Batch-Tool, mit dem Du das Applet signieren kannst. Danach sollte es funktionieren.


----------



## The_S (1. Jun 2005)

Danke, aber signieren will ich eigentlich net. Es ist nur ne Bildergallerie und dafür signieren? Manchmal kotzen mich die extremen Einschränkungen des Sandkastens shcon extrem an :?  :bloed: . Kann ich einen Bestimmten ausschnitt einer HTML Seite als Image abspeichern? Dann könnt ich das Bild ja auf ne HTML-Seite laden und von da aus dann das Bild in mein Applet laden. Geht das?


----------



## Sky (1. Jun 2005)

Also, das so jemand über Sicherheit redet habe ich noch nie gehört... <Ironie>Am besten man schränkt Applets gar nicht mehr ein, damit man im Zweifelsfall fehlende Dateien auf dem System nachinstallieren kann und wenn das auch nicht funktioniert einfach die Festplatte formatieren kann.</Ironie>

Du kannst dein Problem mit JavaScript oder mit Programmen, die auf dem Server laufen, lösen. (Wenn Du nicht signieren willst)


----------



## The_S (1. Jun 2005)

Ich weiß ja net wies dir geht, aber mir ist der Sandkasten schon einige male auf die Füße getreten! Natürlich ist der Sandkasten gut, aber in manchen Situationen ist er auch ein bisschen "zu streng".


----------



## Sky (1. Jun 2005)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Ich weiß ja net wies dir geht, aber mir ist der Sandkasten schon einige male auf die Füße getreten! Natürlich ist der Sandkasten gut, aber in manchen Situationen ist er auch ein bisschen "zu streng".


Nein! Du kannst dein Applet signieren, wenn der User dem Zertifikat vertraut sind die gewollten Rechte vorhanden. Ich erkenne hier keine übermässige Strenge...


----------



## The_S (2. Jun 2005)

Wenn ich ein User wäre, der keine Ahnung hätte und mir einfach nur ne Bildergallerie anschauen will und dafür zustimmen muss, dass ich jemanden vertraue, würd ich das ganz ehrlich lassen. Aber back to Topic! Kann ich das irgendwie mit html (oder anders) umgehen?


----------



## Sky (2. Jun 2005)

1.) Du kannst die Bilder auf "deinem" Server speichern
2.) Du schreibst Dir eine Server-Komponente, welche Dir das Bild laden kann (z.B. mit PHP)
3.) Du kannst das mit JavaScript realisieren


----------



## The_S (2. Jun 2005)

Also php und JavaScript kann ich net :cry:   . Kann ich sowas wie ein dynamisches jpg erstellen? Ich habe nämlich einen Link zu einer HP, auf der sich jeden Tag das Bild ändert. Also müsste ich unter normalen umständen jeden Tag das Bild auf meiner HP ändern! Geht das irgendwie dynamisch? Das wäre nämlich die Lösung :meld:


----------



## AlArenal (2. Jun 2005)

Wenn das Bild auf der anderen Seite immer gleich heißt, musst du gar nix machen. Auf jeden Fall solltest du aber um Erlaubnis fragen. Verletzung von Urheberrechten kann sehr schnell und sehr unerwartet sehr teuer werden.


----------



## L-ectron-X (2. Jun 2005)

Da stimme ich zu.

Lösen kannst du das per z.B. Inline-Frame. Guck mal bei selfhtml vorbei, da wird gezeigt, wie das geht.


----------



## The_S (3. Jun 2005)

Dankeschön!  :applaus:  :toll: ! Werd ich mir heute nach Feierabend mal anschauen (ich sollte doch mal anfangen "richtig" html zu lernen :wink: ).

Erlaubnis des Betreibers der Seite ist da :wink: .


----------



## The_S (3. Jun 2005)

Noch ne kurze Zwischenfrage. Ich kann wirklich nen Image eine *.html Datei zuweisen? Muss ich dabei irgendwas beachten? Kanns grad momentan net selbst austesten, deswegen ist meine Frage so allgemein gehalten.


----------



## The_S (3. Jun 2005)

Um das Thema nochmal aufzugreifen ... Ich wollt das Bild net einfach nur auf meiner HP (das hätt sogar ich mit meinen verkümmerten html-Kenntnissen gepackt  :wink:  :###  ), sondern irgendwie auf meinem Space, so dass mein Applet das Bild darstellen kann! Ich glaub da habt ihr was missverstanden oder ich hab mich unklar ausgedrückt. Oder bin ich zu blöd mir das Bild aus ner html-Seite zu holen ???:L ? Auch wenn keiner mehr ne Idee hat, wie ich das machen kann, würd ich trotzdem gern aufgeklärt werden :bahnhof: . Thx


----------



## The_S (4. Jun 2005)

Hab jetzt so ne Art ansatz! Und zwar könnte ich theoretisch das Bild ja in ner html-Seite auf meinem Server mit nem img-Tag darstellen. Dann könnte ich über ein JEditorPane diese Seite (besteht ja nur aus dem einen Bild) darstellen. Beispiel:


```
import java.awt.*;
import javax.swing.*;
import java.net.*;
import java.io.*;

public class jedit extends JApplet {
	
	JEditorPane html = new JEditorPane();
	
	public jedit() {
		
		html.setEditable(false);
		try {
			URL url = new URL(blabla);
			html.setPage(url);
			html.getPage();
		}
		catch (IOException e) {
			System.out.println(e);
		}
		add(html);
	}
}
```

davon könnte ich mir dann auch ein Graphics-Objekt erstellen


```
html.getGraphics() // oder so ähnlich, hab das nicht mehr ganz im Kopf
```

Nur wie bekomme ich dann Graphics in ein Image? Oder muss ich gar nicht den Umweg über Graphics gehen?


----------



## Roar (4. Jun 2005)

Hobbit_Im_Blutrausch hat gesagt.:
			
		

> Oder bin ich zu blöd mir das Bild aus ner html-Seite zu holen ???:L ? Auch wenn keiner mehr ne Idee hat, wie ich das machen kann, würd ich trotzdem gern aufgeklärt werden :bahnhof: . Thx



hallo? rechtsklick -> save image as ???


----------



## The_S (4. Jun 2005)

Roar hat gesagt.:
			
		

> Hobbit_Im_Blutrausch hat gesagt.:
> 
> 
> 
> ...



Und nachdem sich das Bild täglich ändert dürf ich dann jeden Tag auf die Seite, mir das Bildraussuchen, speichern, mein FTP-Programm starten und auf meinen Space ziehen :? ...


----------



## L-ectron-X (4. Jun 2005)

Also wenn ich das jetzt richtig verfolgt habe (du hast ja immer nur kleine Stückchen von dem geschrieben, was du vor hast) möchtest du alle Bilder, die von einer anderen Webseite veröffentlicht werden, und die sich jeden Tag ändern, sammeln und per Applet in einer Bildergallerie anzeigen?
Das geht so nicht. Weder Applet noch Client haben die Rechte, um Bilder von einer fremden Webseite auf irgendeinen Webspace zu kopieren.
Was du machen kannst ist, eine Applikation zu schreiben, die sich die Bilder der fremden Webseite besorgt und per FTP auf deinen Space schreibt. Ein Applet kann quasi dynamisch dann die Bildergallerie zusammenstellen. Dazu genügt nur das Verzeichnis, in dem du die Bilder auf deinem Webserver speicherst.


----------



## The_S (4. Jun 2005)

Also, drück mich in letzter Zeit wohl ein wenig undeutlich aus :wink: . Sorry! Ich versuch mich nochmal deutlich auszudürcken:

Ausgangssituation:

- Ich habe eine Bildergallerie für meine HP programmiert (noch nicht online)
- In dieser Gallerie werden Bilder von meinem Space angezeigt (klappt auch wunderbar)
- Jetzt gibts ne WebSite, die anbietet, dass man jeden Tag ein anderes Bild von ihrer HP auf die eigene Stellen darf, dafür gibt es nur einen Link, da sich das Bild jeden Tag automatisch via php ändert
- Dieses Bild möchte ich jetzt auch gerne in meiner Bildergallerie anzeigen lassen

Ideen dies zu bewerkstelligen:

- Das betreffende Bild vom anderen Server wie gewohnt in das Applet laden => geht natürlich net, wegen der Sandbox
- Das Bild über den img-Tag in html einbinden und dann probieren in ein Image zu laden => bis jetzt kein Erfolg
- Das Bild über den img-Tag in html einbinden und dann die Seite über ein JEditorPane darstellen. Funktioniert wunderbar, jetzt brauch ich die Darstellung nur noch in nem Image. mit getGraphics bekomm ich es in einem Graphics-Objekt, aber wie kann ich daraus jetzt ein Image machen?

Hoff mein Problem ist jetzt klarer. Danke für eure Geduld :wink:


----------



## The_S (4. Jun 2005)

Ne, funktioniert leider net. Hab das jetzt so


```
...
JEditorPane html = new JEditorPane();
... // html bekommt die betreffende Seite zugewiesen
Graphics g = html.getGraphics(); // funzt
Image img = g.getGraphics(); // funzt net (Cannot find symbol method getGraphics())
```

[eidt] Hö? Wo ist dein Beitrag hin?


----------



## L-ectron-X (4. Jun 2005)

Sorry, hab ihn wieder entfernt bevor du gepostet hast, weil er Blödsinn war.
Willst du aus der JEditorPane das Bild herausholen?


----------



## Roar (4. Jun 2005)

hö? wenn die JEditorPane die seite laden kann, kannst du auch die seite laden fragt sich nur wie...


----------



## The_S (4. Jun 2005)

@ L-ectron-X 

ja! Hab auch in der API irgendwo mal was gefunden, mit dem man den img-Tag einer html-Seite laden kann (glaub sogar gleich als Image), bin da aber net ganz durchgestiegen. War glaub ich irgendwo bei javax.swing.text.html oder so

@ roar

Genau das hat mich auch verwundert. Ich kann ne html-Seite (auf meinem Space) im JEditorPane laden, in der auf nen fremden Server zugegriffen wird, aber das Bild gleich vom anderen Server in mein Applet zu laden geht (anscheinend) nicht. ???:L


----------



## The_S (8. Jun 2005)

So, hab jetzt ne möglichkeit gefunden um die Homepage in ein Image zu speichern, nur wird dabei das Bild anscheinend ignoriert ???:L . Egal ob es auf dem eigenen Server liegt oder nicht. Es wird auch keine Exception geworfen. Jetzt jemand ne Idee? Hier ein Beispielcode:


```
import java.net.*;
import javax.swing.*;
import java.awt.*;
import java.awt.image.*;

public class jedit extends JApplet {
	
	draw d = new draw();
	int i = 0;
	
	public jedit() {
		
		d.img = new BufferedImage(640, 377, BufferedImage.TYPE_INT_RGB);
		d.html.setEditable(false);
		try {
			final URL url = new URL("page");
			d.html.setPage(url);
			d.html.getPage();
			d.html.paint(d.img.createGraphics());
		}
		catch (Exception e) {
			System.out.println(e);
		}
		add(d);
	}
}

class draw extends JPanel {
	
	BufferedImage img;
	JEditorPane html = new JEditorPane();
	
	public void paintComponent(Graphics comp) {
		
		Graphics2D comp2D = (Graphics2D)comp;
		comp2D.drawImage(img, 0, 0, this);	
	}
}
```


----------

