Image will nicht laden

Status
Nicht offen für weitere Antworten.
S

SenioreFamicom

Gast
Hallo Leute,
ich stehe auf dem Schlauch: bei meinem Programm tritt - wenn ich ein Bild (Datentyp Image) via ImageIO.read(...) lade und img.getGraphics() aufrufe - folgender Fehler auf:

Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: getGraphics() not valid for images created with createImage(producer)
at sun.awt.image.ToolkitImage.getGraphics(ToolkitImage.java:292)

Wie und mit was muss ich das Image umwandeln/casten/weiterverarbeiten, dass mein Programm nicht mehr diese Meldung liefert :bahnhof: ?
 

manuche

Bekanntes Mitglied
Lies mal genau die Fehlermeldung:
"getGraphics() not valid for images created with createImage(producer)"

Du wirst hier bei einem Image vermutlich mit getGraphics nicht besonders glücklich...

*edit: Versuche es mal mit einem BufferedImage und wenn das nicht hilft poste ein wenig mehr Code!
 

Marco13

Top Contributor
Hm - poste ggf. mal ein kleines Compilierbares beispiel. Notfalls könnte man auch

BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(image, 0,0, null);

machen, und dann statt des geladenen 'images' das 'bi' verwenden, aber das sollte wohl nicht nötig sein...
 
S

SenioreFamicom

Gast
Okay, ich habe jetzt das Image als BufferedImage vorliegen. Trotzdem läuft hier noch nichts.
Ich habe mal versucht, den Code zu posten. Verzeiht mir, wenn es vlt. etwas unübersichtlich ist :(

Code:
Exception occurred during event dispatching:
java.lang.ClassCastException: sun.awt.image.ToolkitImage
        at SN32.Editor.Map_Tiles.TileMap.updateMap(TileMap.java:32)
        at SN32.Editor.Map_Tiles.TileMap.<init>(TileMap.java:19)
...

Der Code ist mittlerweile sehr groß und verwoben, aber ich lade das Bild über

Code:
this.callingReference.updateMap(ImageIO.read(new File((this.list.getModel().getElementAt(0)).toString())));

rein. Danach wird es eigentlich nur noch als BufferedImage weitergereicht und ab und zu mit BufferedImage-Casting und getScaledInstance skaliert:

Code:
public void updateMap(BufferedImage img) {
        this.foreground.updateMap(img);
        this.foreground.setPreferredSize(new Dimension(img.getWidth() * 2, img.getHeight() * 2));
        this.updateScrollBar();
}

foreground.updateMap überreicht das BufferedImage an TileMap:

Code:
// Foreground-Klasse
public void updateMap(BufferedImage img) {
        this.tileMap    = new TileMap(img, 2);   
        this.grid.setSize(this.tileMap.getWidth(), this.tileMap.getHeight());
}

Die Klasse TileMap enthält:

Code:
private BufferedImage   map;
    
    public  Tile [][]       tile;
    
    public TileMap(BufferedImage map, int scale) {
        this.SCALE  = scale;
        this.map    = map;
        this.updateMap();
    }
    
    
    public void updateMap() {
        this.width      = this.map.getWidth () / 16;            
        this.height     = this.map.getHeight() / 16;            
        this.tile = new Tile[this.width+1][this.height+1];     
        int cnt = -1;
                
        for (int y = 0; y < this.height; y++) {
            for (int x = 0; x < this.width; x++) {
                try {    
                    this.tile[x][y] = new Tile((BufferedImage) this.map.getSubimage(x * 16, y * 16, 16, 16).getScaledInstance(16 * this.SCALE, 16 * this.SCALE, 0), x * 16 * this.SCALE, y * 16 * this.SCALE, this.SCALE, cnt++, true);
                } catch (IOException exc) {
                    
                }
            }
        }
    }

Die Klasse Tile enthält wiederrum:

Code:
private BufferedImage       img         = null;
    private JNumerator  numerator   = null;
    
    
    public Tile(BufferedImage img, int x, int y, int scale, int ID, boolean enableNumerator) throws IOException {        
        this.x              = x;
        this.y              = y;
        this.SCALE          = scale;
        this.ID             = ID;
        this.img            = img;
        if (enableNumerator) {
            this.numerator = new JNumerator(img.getWidth(null), img.getHeight(null), ID, SCALE);
        }
    }

Der erste Code (ganz oben) wird zuerst ausgeführt. Danach wird irgendwann eine weitere Klasse ausgelöst:

Code:
public JPreviewRGBTile(JTransparentChooser callingReference) {
        this.callingReference = callingReference;
        this.setLayout(null);
        this.setBounds(12, 24, 67, 67);
        this.setBackground(Color.WHITE);
        this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
        this.addMouseListener(this);
    }
    
    public void updateImg(BufferedImage img) {
        this.img = img;
    }

public void updateImage(BufferedImage img) {
       this.previewRGBTile.updateImg((BufferedImage) img.getScaledInstance(64, 64, BufferedImage.SCALE_DEFAULT));
    }

@Override
    public void paintComponent(Graphics g) {
        if (this.img != null) {
            g.drawImage(img, 0, 0, this);
        }
    }

Danach wird

Code:
public void updateImage(BufferedImage img) {
       this.previewRGBTile.updateImg((BufferedImage) img.getScaledInstance(64, 64, BufferedImage.SCALE_DEFAULT));
    }

ausgeführt. Dabei handelt es sich bei previewRGBTile um die vorige Klasse.

Ich hoffe, das reicht an Code. Wenn es dennoch zu wenig ist, kann ich auch noch ein wenig mehr posten. Aber wie bereits erwähnt, es ist schon recht viel an Quellcode und nur schwer trennbar.

@ Marco: Wenn hier nix gefunden werden kann, versuche ich ein comp.bares Beispiel reinzustellen :?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Position eines Image verändern mithilfe eines Timers Spiele- und Multimedia-Programmierung 6
K Video: Per Image Information Spiele- und Multimedia-Programmierung 3
M Image unpainten Spiele- und Multimedia-Programmierung 3
B Bild ohne Image auf die Festplatte streamen Spiele- und Multimedia-Programmierung 4
X Android Slick AE Image Pfad Spiele- und Multimedia-Programmierung 3
A Drehen von einem Image Spiele- und Multimedia-Programmierung 4
C Mouseover Area genau wie Image Spiele- und Multimedia-Programmierung 8
L Slick-Image aus byte-array erzeugen Spiele- und Multimedia-Programmierung 2
0 2D Spiel Welt scrollen bzw Image erweitern Spiele- und Multimedia-Programmierung 2
T jME3: awt.Image <-> jME3.Image Spiele- und Multimedia-Programmierung 7
F nur Ausschnitt eines Image zeichnen Spiele- und Multimedia-Programmierung 9
F Hintergrund bei Image entfernen Spiele- und Multimedia-Programmierung 4
S Image-Einbindung Spiele- und Multimedia-Programmierung 5
StrikeTom .gif animation als image abspielen Spiele- und Multimedia-Programmierung 2
T Glüh effekt um Image Spiele- und Multimedia-Programmierung 9
radiac Aktuelles ScreenBild als Image? Spiele- und Multimedia-Programmierung 6
Stillmatic1985 Buffered Image drucken Spiele- und Multimedia-Programmierung 1
P Culling von Image-Objekten Spiele- und Multimedia-Programmierung 3
E Alternative zu import com.sun.image.codec.jpeg.JPEGCodec ? Spiele- und Multimedia-Programmierung 1
E JPCT background image Spiele- und Multimedia-Programmierung 3
P Grosses Bufferd Image Drucken Print API Spiele- und Multimedia-Programmierung 3
G Image drucken Spiele- und Multimedia-Programmierung 17
A Image in BufferedImage konvertieren Spiele- und Multimedia-Programmierung 2
O Image dynamisch erstellen. Spiele- und Multimedia-Programmierung 6
G Punkt in Image auf Transparenz prüfen Spiele- und Multimedia-Programmierung 6
G Bereich im Image löschen Spiele- und Multimedia-Programmierung 4
H image.setRGB() zeichnet falsch Spiele- und Multimedia-Programmierung 3
R Transparente Farbe von (Buffered) Image Spiele- und Multimedia-Programmierung 10
D Welcher Image Typ am besten für 2D-Spiele geeignet? Spiele- und Multimedia-Programmierung 5
O Image konvertieren in monochrom scharz/weiß Spiele- und Multimedia-Programmierung 3
F Image eines bestimmten Bereichs eines JPanels erstellen Spiele- und Multimedia-Programmierung 4
T Spiel als Vollbild starten mit Image als HIntergrund Spiele- und Multimedia-Programmierung 8
O transparente farbe in Image mit Graphics Spiele- und Multimedia-Programmierung 8
S Image to BufferedImage Spiele- und Multimedia-Programmierung 3
D Image.getGraphics() in einem Frame Spiele- und Multimedia-Programmierung 4
S Minecraft Plugins nach Buchanleitung funktionieren nicht Spiele- und Multimedia-Programmierung 4
B Bild wird nicht geladen Spiele- und Multimedia-Programmierung 4
Fabel TicTacToe MiniMax Algorithmus geht nicht Spiele- und Multimedia-Programmierung 4
ThoraxLaneus Minecraft MCP-Client mit Optifine fertig machen in IntelliJ klappt nicht ganz Spiele- und Multimedia-Programmierung 6
K Mein Jump and Run charakter bewegt sich nicht mehr rückwärts... Spiele- und Multimedia-Programmierung 0
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
D MIDIdevice open funktioniert nicht Spiele- und Multimedia-Programmierung 1
Mika_MDF Minecraft Eclipse startet Minecraft nicht? Spiele- und Multimedia-Programmierung 23
H Musik Datei lädt nicht? Spiele- und Multimedia-Programmierung 8
A Kollision funktioniert nicht richtig bei zu schneller Geschwindigkeit des Spielers Spiele- und Multimedia-Programmierung 0
JeremyStarTM Minecraft Minecraft Spigot Server akzeptiert JAR-Version nicht Spiele- und Multimedia-Programmierung 8
K Das Leerzeichen der Tastatur wird nicht gleichgesetzt mit dem Leerzeichen aus der Text Datei Spiele- und Multimedia-Programmierung 5
P Teamspeak interface mit JFrame funktioniert nicht Spiele- und Multimedia-Programmierung 3
coolian slick lwjgl text darstellen mit UnicodeFont funktoniert nicht? Spiele- und Multimedia-Programmierung 11
Z Minecraft Multiplayer geht nicht Spiele- und Multimedia-Programmierung 2
L Minecraft 1.7.10 Server startet nicht Spiele- und Multimedia-Programmierung 1
R Memory - Nicht alle Button lassen sich aktivieren? Spiele- und Multimedia-Programmierung 1
D Kollision funktioniert unten aber nicht oben Spiele- und Multimedia-Programmierung 4
C Java findet FluidSynth nicht Spiele- und Multimedia-Programmierung 2
N der Player bewegt sich nicht Spiele- und Multimedia-Programmierung 14
D Java Bild bewegen funktioniert nicht Spiele- und Multimedia-Programmierung 8
Damtonix Gameloop funktioniert nicht! Spiele- und Multimedia-Programmierung 6
N Warum tut der Gegner nicht das was er soll? Spiele- und Multimedia-Programmierung 13
N Warum ist das Fenster nicht schwarz? Spiele- und Multimedia-Programmierung 26
B Programmieren wie der Befehl /ban in Minecraft geblockt wird aber nicht /ban mit einem Argument Spiele- und Multimedia-Programmierung 1
A Dateifehler - Öffnet nicht Spiele- und Multimedia-Programmierung 7
temi libGDX Box2d ApplyTorque() funktioniert nicht Spiele- und Multimedia-Programmierung 1
R Laufbewegung geht nicht.. Spiele- und Multimedia-Programmierung 1
J OpenGL Bild wird nicht richtig angezeigt Spiele- und Multimedia-Programmierung 2
S GetBufferStrategy-Methode wird nicht angezeigt Spiele- und Multimedia-Programmierung 6
M KeyListener funktioniert nicht während Timer läuft Spiele- und Multimedia-Programmierung 26
F vlcj läuft nicht exportiert, aber in Eclipse Spiele- und Multimedia-Programmierung 2
A MouseListener ändert nicht das Lable Icon. Spiele- und Multimedia-Programmierung 2
G LWJGL Rendert nicht Spiele- und Multimedia-Programmierung 3
A Spielball bewegt sich nicht richtig, prallt falsch ab Spiele- und Multimedia-Programmierung 7
S KeyEvent funktioniert nicht, wenn Buttons dem Frame hinzugefügt werden Spiele- und Multimedia-Programmierung 7
Blender3D VLCJ Video lässt sich nicht mehr abspielen nach mysql Installation Spiele- und Multimedia-Programmierung 1
J Programm kann Audio Datei nicht finden Spiele- und Multimedia-Programmierung 7
Viktim Snake - Schlange wächst nicht Spiele- und Multimedia-Programmierung 3
J Mensch Ärgere Dich nicht - Künstliche Intelligenz Spiele- und Multimedia-Programmierung 2
C Export als .jar funktioniert nicht richtig (JAVA 3D) Spiele- und Multimedia-Programmierung 5
L Mensch ärgere dich nicht Spiele- und Multimedia-Programmierung 13
Polarfuchs Status von Midi Datei(wird gerade abgespielt oder nicht) Spiele- und Multimedia-Programmierung 0
A Bild(sequenz) wird nicht geladen Spiele- und Multimedia-Programmierung 1
4 AudioSystem.write() wirft IllegalArgumentException, obwohl dies eig. nicht passieren dürfte Spiele- und Multimedia-Programmierung 2
V Methoden werden zwar ausgeführt führen aber nicht zum Ergebnis Spiele- und Multimedia-Programmierung 5
M [JOGL] eclipse export Runnable Jar - startet nicht Spiele- und Multimedia-Programmierung 3
B LWJGL / OPENGL Kriege Depth-Test nicht hin :( Spiele- und Multimedia-Programmierung 0
S Slick2D KeyInput reagiert nicht. Spiele- und Multimedia-Programmierung 3
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
W [libGDX] findet SplashScreen.png nicht Spiele- und Multimedia-Programmierung 4
T LWJGL VBO's funktionieren nicht, geben aber auch keinen Fehler Spiele- und Multimedia-Programmierung 0
Androbin Kollision zwischen Raster und Nicht-Raster Spiele- und Multimedia-Programmierung 2
O Fehler bei Programmierung lässt Figur nicht bewegen Spiele- und Multimedia-Programmierung 5
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
B Mein Programm reagiert nicht auf den Tasstendruck Spiele- und Multimedia-Programmierung 1
F HashMap liefert nicht gewünschten Wert (gar nix) Spiele- und Multimedia-Programmierung 5
J mensch ärger dich nicht Spiele- und Multimedia-Programmierung 1
M Spiele Tutorial.. Findet Bilddateien nicht Spiele- und Multimedia-Programmierung 6
G Ausführbare Jar findet Bilddateien nicht... Spiele- und Multimedia-Programmierung 4
P Rotation von Sprite klappt nicht Spiele- und Multimedia-Programmierung 4
A Minecraft Java Ubuntu Minecraft Server startet nicht - ERROR (SIGSEGV) Spiele- und Multimedia-Programmierung 7
F LWJGL: Licht und GL_LINES funktioniert nicht Spiele- und Multimedia-Programmierung 6
A [LWJGL] BMP Textur wird nicht richtig dargestellt Spiele- und Multimedia-Programmierung 8
N JPanel Inhalt aktualisiert nach Thread.sleep nicht Spiele- und Multimedia-Programmierung 2

Ähnliche Java Themen


Oben