Bild in Image-Objekt laden

Status
Nicht offen für weitere Antworten.

Kaan

Bekanntes Mitglied
Ich hab folgendes gemacht:

Ein Animationsfenster (mit Thread) und eine Testklasse kommunizieren über eine Kommunikationsklasse, die ein static Image Objekt beinhaltet.

Das Animationsfenster greift fortlaufend auf dieses Image Objekt zu und zeichnet das Bild in sein Fenster. Die Testklasse ladet verschiedene Bilder und übergibt sie der Kommunikationsklasse.

Nun habe ich das Problem, dass meine Testklasse sehr unsauber aussieht, da ich zum Laden eines Bildes ein unnützes Fenster erzeugen muss, damit ich auf das Toolkit zugreifen kann. Gibt es eine Möglichkeit ein Bild ohne einem AWT-Fenster zu laden?

Ich hoffe ihr versteht ungefähr mein Problem...

Danke im Voraus.
 
B

Beni

Gast
Guck dir mal die Klasse ImageIO, und die Methoden read an :wink:
 

Kaan

Bekanntes Mitglied
Ok, mach ich mal. Danke.

Falls ich was nicht verstehen sollte, werde ich mich nochmal melden :)
 

Kaan

Bekanntes Mitglied
Ich wollte euch fragen, ob mein Code ungefähr stimmt. Kompilieren lässt es sich. Ist es aber auch sauber programmiert? Und wie kann ich den MediaTracker hier anwenden, damit so lange gewartet wird, bis das Bild vollständig geladen wurde?

Code:
import javax.imageio.ImageIO;
import java.awt.*;
import java.io.*;

public class Test
{
    public static void main(String[] args)
    {
        try{
            Image img = ImageIO.read(new File("Bild.gif"));
        }catch(IOException e){}
    }
}
 

Griffin

Bekanntes Mitglied
Zur Sauberkeit:
Der Code ist ziemlich kurz aber ich sehe da keine wirklichen Verstöße!
Wie man die Klammern positioniert, ist ein ewiger Streitpunkt.

Code:
public class Bla {

}

public class Blubb
{

}

Aber das solltest du dann auch einhalten. Siehe Try-Block.
Und wenn du es so machst wie jetzt lass dem catch doch bischen raum zum atmen ;)
Code:
try {

} catch (Exception e) {

}

Ich weis nicht wie es andere machen, aber ich gebe meinen Variablen den Typ in Kurzform mit zum Namen
Code:
Button btnVogel = new Button("Lade Vogel");
...
Image imgVogel = ImageIO.read(new File("Vogel.gif"));

So muss ich mir nicht so viele Variablen einfallen lassen, die was gleiches "beschreiben". Und vermeide so Variablennamen wie Vogel1,Vogel2,...
 

Kaan

Bekanntes Mitglied
Wieso verwendet man eigentlich

Code:
Image img = getToolkit().getImage("bild.gif");

obwohl

Code:
Image img = ImageIO.read(new File("bild.gif"));

viel allgemeingültiger ist?
 
B

Beni

Gast
Ich vermute mal ImageIO ist jünger, und deshalb weniger bekannt.

Einen MediaTracker brauchst du nicht, ImageIO kehrt erst dann zurück, wenn das Bild geladen ist.
 

Kaan

Bekanntes Mitglied
Ok, ich habe in der Api auch die Klasse BufferedImage entdeckt. Was für Vorteile bringt mir ein BufferedImage gegenüber einem normalen Image?
 
B

Beni

Gast
Du kannst die Farben eines einzelnen Pixels abrufen, und dann gibt es sicher auch noch andere nette Eigenschaften :)
 
R

Roar

Gast
Kaan hat gesagt.:
Ist es aber auch sauber programmiert?

die solltest exceptions immer weiterverarbeiten. einen exceptino block leer zu lassen ist in den meisten fällen böse, außer die exception gehört zum programmfluss und man weiß dass sie auftreten wird und wenn sie ungefährlich ist, wie zum beispiel InterruptedException bei einem sleep
und wenn s um ein laden eines bildes geht soltle man wirklich eine nachricht ausspucken.
 

Kaan

Bekanntes Mitglied
@Roar
Du hast recht :D Muss ich noch machen.



Gibt es eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann?
 

Reality

Top Contributor
Beni hat gesagt.:
Ich vermute mal ImageIO ist jünger, und deshalb weniger bekannt.

Einen MediaTracker brauchst du nicht, ImageIO kehrt erst dann zurück, wenn das Bild geladen ist.
ImageIcon macht das selbe.
Wieso gibt es so viele Klassen, die das selbe machen? ???:L

Liebe Grüße
Reality
 

Kaan

Bekanntes Mitglied
Reality hat gesagt.:
Beni hat gesagt.:
Ich vermute mal ImageIO ist jünger, und deshalb weniger bekannt.

Einen MediaTracker brauchst du nicht, ImageIO kehrt erst dann zurück, wenn das Bild geladen ist.
ImageIcon macht das selbe.
Wieso gibt es so viele Klassen, die das selbe machen? ???:L

Liebe Grüße
Reality

Ich bin derselben Meinung wie du! Manchmal finde ich Java einfach ÜBERLADEN. Außerdem sind manche Klassen von Java so einfach, die soll man gefälligst SELBER PROGRAMMIEREN. :x :lol: Ich denke da z.B. an die Klasse Point...
 
R

Roar

Gast
so ein quatsch. wieso soltle man sowas triviales selbst machen? sowas gehört halt dazu. wenn man richtig was programmiert, wird man froh sein wenn du nicht jeden fliegenschiss selbst machen musst. was glaubst du wie aufgebläht deine projekte dann wohl werden würden?

@reality: die klassen sind alle unterschiedlich und haben unteschiedliche aufgaben und zwecke. nur kann man sie halt so missbrauchen dass sie vieles gleich machen.
 

Reality

Top Contributor
Roar hat gesagt.:
@reality: die klassen sind alle unterschiedlich und haben unteschiedliche aufgaben und zwecke. nur kann man sie halt so missbrauchen dass sie vieles gleich machen.
Ich finde man sollte die Klassen dann mit neuen Funktionen bestücken anstatt neue zu erfinden.

Liebe Grüße
Reality
 
R

Roar

Gast
nä, ImageIcon und die ImageIO habe ja ganz verschiedene zwecke. ImageIcon ist einfach nur eine Implementierugn von einem Icon was im swing toolkit verwendet wird. zufällig bietet die die möglichkeit Bilder per URL zu laden.
die ImageIO und java.awt.image hab den zweck bilder verschiedener formate zu laden, zu bearbeiten, zu ändern, auszulesen und was halt dazu gehört.
wenn jemand ein bildbearbeitungsprogramm is das sicher komisch wenn er dafür eine klasse benutzen müsste die eigentlich nur dazu dient um Icons auf swing komponenten zu zeichnen würde ihm das schön komisch vorkomen. auch jemand der einfach ein bild auf ein JButton malen will, würde sich wundern wenn die klasse die dafür vorgesehen ist, methoden implementiert um irgendwelche bildoperationen durchzuführen :-/
 

Kaan

Bekanntes Mitglied
Gibt es nun eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann...?
 
R

Roar

Gast
Kaan hat gesagt.:
Gibt es nun eine Möglichkeit, dass ich mein BufferedImage auslese, die Farben jedes Pixels in einem Zahlenarray speicher und die Bilder sozusagen auch in die Bytecode Datei packen kann...?

sry aber wozu soll das gut sein :-/
 

Kaan

Bekanntes Mitglied
Damit ich am Ende nur noch .class Dateien habe und keine Bilddateien herumlungern. Ich weiß, dass so ein Bild in einer Klasse zu speichern speichermäßig unsinnig ist...aber was solls :D Mir ist die Ordnung wichtiger...
 
R

Roar

Gast
wie wärs mit ner jar datei?
oder iwllst du jedesmal wenn du n anderes bild benutzt deine klassen neu kopmilieren müssen?
 

Kaan

Bekanntes Mitglied
Wie oft werde ich die Bilder schon gegen neue austauschen?

Auch in der Jar Datei siehts dann schöner aus, wenn nur noch .class Dateien drin sind.
 
R

Roar

Gast
nein, sorry, aber das ist schwachsinnig die bilder als byte array in klassen zu speichern...
 
B

Beni

Gast
Wer guckt denn so in die JAR hinein? Otto-Normabenutzer wohl kaum... also wen störts schon.
 

Kaan

Bekanntes Mitglied
Dafür kann der Ottonormal User die Bilder nicht stehlen :) (außer er findet raus, wie man Screenshots macht :()
 
R

Roar

Gast
die icons die ich benutze sind eh nur (l)gpl icons. oder kaufst du dir deine icons? und ein otto normalbenutzer will braucht auch keine icons zum datei öffnen.
scnr ;) *g*
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Image Loader laedt bild nicht Java Basics - Anfänger-Themen 11
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
V Bild per Java Script austauschen Java Basics - Anfänger-Themen 7
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Bild per KeyListener drehen Java Basics - Anfänger-Themen 1
I Kamera anschließen / Bild machen / Live View / Externe Blitz Java Basics - Anfänger-Themen 19
I Innerhalb einem Bild ein Teil austauschen Java Basics - Anfänger-Themen 26
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
R UML-Bild (Erkennung ob static o. nicht) Java Basics - Anfänger-Themen 18
J Bild auf Hintergrundbild zeichnen Java Basics - Anfänger-Themen 5
krgewb Bild itextpdf Java Basics - Anfänger-Themen 2
C Bild in executable JAR File mitgeben Java Basics - Anfänger-Themen 5
VPChief Bild in JEditorPane Java Basics - Anfänger-Themen 9
B Warum bekomme ich kein Bild. Java Basics - Anfänger-Themen 10
S Bild einfügen // NEU Java Basics - Anfänger-Themen 12
N Bild drehen Java Basics - Anfänger-Themen 3
S Ein Bild mit dynamischer Quelle neuzeichnen Java Basics - Anfänger-Themen 12
N GLOOP Bild nicht ansichtbar Java Basics - Anfänger-Themen 5
M Bild in JFrame Java Basics - Anfänger-Themen 1
B Signatur erstellen - Bild ist nur weiß Java Basics - Anfänger-Themen 0
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 17
CptK Interface Bild rotieren Java Basics - Anfänger-Themen 1
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
CptK Interface Bild über Methode ändern funktioniert nicht Java Basics - Anfänger-Themen 4
CptK Interface Curser durch Bild ersetzen & MouseListner Java Basics - Anfänger-Themen 2
M jTextPane Bild anzeigen Java Basics - Anfänger-Themen 6
CptK Bild beim betätigen eines JButtons Java Basics - Anfänger-Themen 6
S Bild über JButton legen Java Basics - Anfänger-Themen 3
B Bild mit Schrift befüllen / Anpassung bei Wortlänge Java Basics - Anfänger-Themen 2
D Google maps bild mit marker versehen Java Basics - Anfänger-Themen 12
D ImageView mit einfarbigem Bild fuellen Java Basics - Anfänger-Themen 3
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
M Bild wird von JFrame nicht geladen Java Basics - Anfänger-Themen 12
J Bild in Button einsetzen Java Basics - Anfänger-Themen 6
S button kommt durch bild Java Basics - Anfänger-Themen 13
M Ein Bild durch Objekterzeugung zeichnen Java Basics - Anfänger-Themen 5
B Greenscreen (grüner Hintergrund ersetzen mit Bild) Java Basics - Anfänger-Themen 49
K Interface Kein Bild im .jar-File Java Basics - Anfänger-Themen 15
S Bild in Jar-File mit ImageIO Java Basics - Anfänger-Themen 50
S Bild einfügen Java Basics - Anfänger-Themen 16
binop Bild anzeigen lassen Java Basics - Anfänger-Themen 2
D Bild zu Text Java Basics - Anfänger-Themen 4
I HTML Code in Bild (transparent) konvertieren Java Basics - Anfänger-Themen 0
I Watermark erstellen mit HTML in Bild? Java Basics - Anfänger-Themen 7
D Classpath Bild kann in .jar nicht geladen werden Java Basics - Anfänger-Themen 2
Anfänger2011 Bild programmieren?! Java Basics - Anfänger-Themen 3
8 Eigenes Bild in email einfügen Java Basics - Anfänger-Themen 1
K JTable Bild einfügen Java Basics - Anfänger-Themen 1
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
J Umgebungsvariable Programmfenster zeigt kein Bild an Java Basics - Anfänger-Themen 1
J Bild loopen Java Basics - Anfänger-Themen 6
M JFrame Bild einfügen Java Basics - Anfänger-Themen 3
S Bild bei Kontakt ändern Java Basics - Anfänger-Themen 2
C Erste Schritte Bild holen und speichern Java Basics - Anfänger-Themen 1
D Bild in Frame einfügen Java Basics - Anfänger-Themen 11
D Bild im Applet anzeigen Java Basics - Anfänger-Themen 3
F Bild in ein Runnable Jar File packen (eclipse) Java Basics - Anfänger-Themen 2
M Java-Applet: Bild einbinden (getImage) Java Basics - Anfänger-Themen 0
J Ganzes Bild Java Basics - Anfänger-Themen 4
T GUI anstatt Bild schwarzes Rechteck gespeichert Java Basics - Anfänger-Themen 0
A Bild verschwindet! Wieso?? Java Basics - Anfänger-Themen 2
I Bild aus Bereich laden Java Basics - Anfänger-Themen 3
P Bild in JFrame Titelleiste Java Basics - Anfänger-Themen 7
Y Nach Bild-Upload wird Bild nicht angezeigt Java Basics - Anfänger-Themen 1
M Button mit Bild und Text Java Basics - Anfänger-Themen 2
M JSP-Einfaches Bild anzeigen Java Basics - Anfänger-Themen 4
C Bild ins Frame laden und Objekte drüber legen Java Basics - Anfänger-Themen 1
Sogomn Bild will sich nicht skalieren lassen Java Basics - Anfänger-Themen 1
P Ein Bild für GUI (Java-Editor) Java Basics - Anfänger-Themen 4
D Bild für ein paar Sekunden einblenden und wieder ausblenden Java Basics - Anfänger-Themen 1
E Bild per Verzeichnis/JFileChooser auf JPanel laden Java Basics - Anfänger-Themen 13
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
P Bild bearbeiten Java Basics - Anfänger-Themen 9
Z Datenmatrix in Bild verwandeln Java Basics - Anfänger-Themen 4
C Bild verschwinden lassen Java Basics - Anfänger-Themen 7
S Bild Icon aus ID3Tag auslesen Java Basics - Anfänger-Themen 4
E Bild vom FileChooser aus via ImageIcon in DB schreiben Java Basics - Anfänger-Themen 16
D Bild zum Panel hinzufügen Java Basics - Anfänger-Themen 8
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
O Auflösung einer Bild-Datei bekommen ohne sie herunterzuladen?? Java Basics - Anfänger-Themen 7
L Bild-Datein "zuschneiden" Java Basics - Anfänger-Themen 11
O DeviantArt-Bild Konverter: Fehler.. Java Basics - Anfänger-Themen 16
K Transparents Bild laden -> Fehlermeldung Java Basics - Anfänger-Themen 6
M Bild einbinden Java Basics - Anfänger-Themen 7
2 Bild auf JApplet zeichnen Java Basics - Anfänger-Themen 18
T Bild laden Java Basics - Anfänger-Themen 7
R Bild in GUI Java Basics - Anfänger-Themen 11
D Eclipse Juno zeigt Bild nicht bei Run Java Basics - Anfänger-Themen 3
Kenan89 Bild mit jar öffnen Java Basics - Anfänger-Themen 4
S Problem bei Bewegung von einem Bild! Java Basics - Anfänger-Themen 2
J Bild mit transparenter Farbe Java Basics - Anfänger-Themen 10
N Erste Schritte Applet zeichnet Bild nicht Java Basics - Anfänger-Themen 10
J Bild auf JLabel wird nicht angezeigt Java Basics - Anfänger-Themen 11
J Bild einfügen Java Basics - Anfänger-Themen 3
T ASCII Art von Bild erstellen. Java Basics - Anfänger-Themen 32

Ähnliche Java Themen

Neue Themen


Oben