相关疑难解决方法(0)

如何使用java获取图像的高度和宽度?

除了使用ImageIO.read获取图像高度和宽度之外还有其他方法吗?

因为我遇到了锁定线程的问题.

at com.sun.medialib.codec.jpeg.Decoder.njpeg_decode(Native Method)      
at com.sun.medialib.codec.jpeg.Decoder.decode(Decoder.java:87)      
at com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader.decode(CLibJPEGImageReader.java:73)     
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)      
at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.getImage(CLibImageReader.java:320)    
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)     
 at com.sun.media.imageioimpl.plugins.clib.CLibImageReader.read(CLibImageReader.java:384)   
 - locked <0xd96fb668> (a com.sun.media.imageioimpl.plugins.jpeg.CLibJPEGImageReader)      
at javax.imageio.ImageIO.read(ImageIO.java:1400)      
at javax.imageio.ImageIO.read(ImageIO.java:1322)
Run Code Online (Sandbox Code Playgroud)

此错误仅发生在Sun应用服务器上,因此我怀疑它是Sun错误.

java javax.imageio

98
推荐指数
8
解决办法
18万
查看次数

Toolkit.getDefaultToolkit().createImage()vs ImageIO.read()

我正在使用Swing创建一个UI,我想在一个图像中显示一个图像JLabel.我使用的代码如下:

 JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("img.jpg"))));
Run Code Online (Sandbox Code Playgroud)

如果我使用png图像,这可以正常工作,但是当涉及到jpg(只有其中一些)时,我得到一个红色图像(与我在Paint.NET中看到的图像不同).我使用的图像是这个:img.jpg

所以我试过(作为替代方案):

Toolkit.getDefaultToolkit().createImage(new File("img.jpg").getAbsolutePath());
Run Code Online (Sandbox Code Playgroud)
  1. 有谁知道为什么会这样?它JPEG是不受支持的特殊格式吗?
  2. 我在这个论坛上看到,大多数人都建议使用ImageIO(例如这里).为什么?

非常感谢

java swing jpeg image javax.imageio

8
推荐指数
2
解决办法
7603
查看次数

标签 统计

java ×2

javax.imageio ×2

image ×1

jpeg ×1

swing ×1