Bildgröße ermitteln
uepselon
- java
Hallo,
ich möchte gerne in einer Java Anwendung (kein Applet) die Breite (Width) eines Bildes ermitteln, hab dazu folgendes gemacht:
pic = getToolkit().getImage("bild.gif");
return pic.getWidth(this);
Beim ausführen eines ActionEvents wird die größe des Bildes in einer Funktion nach obigem Schema ermittelt. Beim ersten aufruf der Funktion kommt als Wert -1 zurück, beim Zweiten aufruf, der richtige Wert für die Breite. Ich glaube es liegt daran das Java das Bild beim ersten Aufruf noch nicht "kennt" und es erst später bekanntgemacht wird. Wie kann ich das Problem lösen, ohne die Funktion 2 mal aufrufen zu müssen?
Scheiß Java, echt, für die einfachsten Sachen muss man sich mit 150 Interfaces (hier ImageObserver)etc. rumschlagen um Sie zum laufen zu bringen.
Gruß,
ueps
Hallo,
wenn du die Bilder nicht mit einem MediaTracker synchron laden möchtest,
dann nimm doch einfach die Klasse javax.swing.ImageIcon. Dem Konstruktor
kannst du den Dateinamen übergeben. Die Bild-Daten werden dann gleich
im Konstruktor geladen (übrigens auch mit einem Media-Tracker). Vom
ImageIcon-Objekt kriegst du über die getImage()-Methode ein Image-Objekt.
Image image = new ImageIcon("image.gif").getImage();
Gruß
Slyh
Hallo,
Image image = new ImageIcon("image.gif").getImage();
Ist zwar auch n'bissl umständlich, aber ich machs wohl so, danke.
Eine Frage hätt ich dann aber doch noch.
Wie kopier ich eine Datei von Ordner a nach Ordner b?
Habs schon versucht die Datei Zeichenweise einzulesen und zu speichern, das Resultat, war jedoch das er mir die Datei zerhackt hat. Einige Zeichen werden beim lesen/speichern von Java einfach umgewandelt. Gibts da keine alternativ Lösung?
Gruß,
ueps
Hi,
Wie kopier ich eine Datei von Ordner a nach Ordner b?
Habs schon versucht die Datei Zeichenweise
Zeichen-(Reader/Writer) oder Bit-weise (Input-/Outpuststream)?
inzulesen und zu speichern, das Resultat, war jedoch das er mir die Datei zerhackt hat. Einige Zeichen werden beim lesen/speichern von Java einfach umgewandelt. Gibts da keine alternativ Lösung?
Viele Grüße,
Martin Jung
Hallo,
Zeichen-(Reader/Writer) oder Bit-weise (Input-/Outpuststream)?
Zeichenweise:
FileReader fin = new FileReader(inputFile);
FileWriter fout = new FileWriter(outputFile);
Dann werd ichs wohl mal Bitweise versuchen.
Gruß,
ueps
Hi,
Dann werd ichs wohl mal Bitweise versuchen.
Wäre zum Kopieren von Dateien sinnvoll ;-)
Viele Grüße,
Martin Jung
Hallo,
Dann werd ichs wohl mal Bitweise versuchen.
Wäre zum Kopieren von Dateien sinnvoll ;-)
Jo, in der Tat, welch Zufall jetzt funktioniert es :-)
So kanns gehen, wenn man sich auf vermeintlich "richtige" Beispiele, zum kopieren von Dateien, auf diversen Internetseiten verlässt.
Naja, Selbst ist der Mann ;-) (es lebe SelfWASAUCHIMMER)
Gruß,
ueps