2012-04-11 31 views
2

Ich versuche, dieses Bild mit ImageIO.read zu laden(), um die 1.7.0u JVM:Warum kann Java dieses Bild nicht analysieren?

http://taste-for-adventure.tablespoon.com/files/2012/02/2012-02-05-poll-hotdog-275w.jpg

Chrome keine Probleme damit hat, aber Java wirft die folgende Ausnahme:

java.lang.NullPointerException 
    at java.awt.color.ICC_Profile.intFromBigEndian(ICC_Profile.java:1770) 
    at java.awt.color.ICC_Profile.getNumComponents(ICC_Profile.java:1462) 
    at sun.java2d.cmm.lcms.LCMSTransform.<init>(LCMSTransform.java:122) 
    at sun.java2d.cmm.lcms.LCMS.createTransform(LCMS.java:76) 
    at java.awt.color.ICC_ColorSpace.fromRGB(ICC_ColorSpace.java:222) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.setImageData(JPEGImageReader.java:635) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(JPEGImageReader.java:550) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.checkTablesOnly(JPEGImageReader.java:295) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.gotoImage(JPEGImageReader.java:427) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readHeader(JPEGImageReader.java:543) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.readInternal(JPEGImageReader.java:986) 
    at com.sun.imageio.plugins.jpeg.JPEGImageReader.read(JPEGImageReader.java:966) 
    at javax.imageio.ImageIO.read(ImageIO.java:1448) 
    at javax.imageio.ImageIO.read(ImageIO.java:1400) 

Ist Javas Bildleser bekannt als zerbrechlich? Gibt es eine robustere Java-Bibliothek zum Laden von Bildern?

+0

wo ist dein Code? – Gevorg

Antwort

2

Hi bitte versuchen Sie folgendes, Dies läuft ohne Probleme in Java 1.6? Gibt es die gleiche Ausnahme?

import java.awt.BorderLayout; 
import java.awt.Image; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 

public class ShowImage { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("Debug Frame"); 
     frame.setSize(200, 200); 
     frame.setLayout(new BorderLayout()); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     Image image = null; 
     JLabel label = null; 

     try { 
      image = ImageIO.read(new File("c:/scratch/hotdog.jpg")); 
      label = new JLabel(new ImageIcon(image)); 
     } catch (IOException e) { 
      label.setText("Image loading failed"); 
     } 

     frame.add(label,BorderLayout.CENTER); 
     frame.setVisible(true); 
    } 
} 
0

Nicht sicher, was Sie versuchen, zu tun, was genau in Ihrem Code, und welche Linie wirft eine Nullpointer aber die folgenden Werke Flossen in Java 6:

String imageUrl = "http://taste-for-adventure.tablespoon.com/files/2012/02/2012-02-05-poll-hotdog-275w.jpg"; 
BufferedImage bi = ImageIO.read(new URL(imageUrl)); 
if(bi != null) 
    System.out.println("Image Loaded!"); 
else 
    System.out.println("Something's wrong..."); 

Sorry, aber ich kann nicht testen es in Java 7 jetzt ...

Verwandte Themen