sun.awt.image.ImageFormatException

狂奔吧蜗牛 2013-04-01 07:23:05
sun.awt.image.ImageFormatException: Unsupported color conversion request
at sun.awt.image.JPEGImageDecoder.readImage(Native Method)
at sun.awt.image.JPEGImageDecoder.produceImage(Unknown Source)
at sun.awt.image.InputStreamImageSource.doFetch(Unknown Source)
at sun.awt.image.ImageFetcher.fetchloop(Unknown Source)
at sun.awt.image.ImageFetcher.run(Unknown Source)
在使用压缩图片的时候,出现了以上错误,请哪位高手帮忙解析下,如何避免这个异常;另外我用了try{}catch(Excrption 3){}截获该异常,却截不到,哪个高手能解释下?谢谢
附上部分源码,其中红色代码为出错位置:
ImageIcon image = null;
try{
System.out.println(item.ITEM_CODE);
File file = new File("d:\\self\\pic\\item"+item.ITEM_CODE+".jpg");//如果存在就用这个图片
if(file.exists()){
image = new ImageIcon("d:\\self\\pic\\item"+item.ITEM_CODE+".jpg");
}
else{//如果不存在对应的图片就使用默认图片
image = new ImageIcon("d:\\self\\pic\\1.jpg");
}
image.setImage(image.getImage().getScaledInstance(width,height, Image.SCALE_DEFAULT));
}catch(Exception e){
SystemFun.oneButton("图片item"+item.ITEM_CODE+".jpg有异常,请更换","提示","确定");
image = new ImageIcon("d:\\self\\pic\\1.jpg");
image.setImage(image.getImage().getScaledInstance(width,height, Image.SCALE_DEFAULT));
}
jLabel1.setIcon(image);
...全文
579 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
狂奔吧蜗牛 2013-05-01
  • 打赏
  • 举报
回复
但是我的这个图片是动态加载的,每个Jpanel上加载多少个图片不固定,没法在加载前就设定好大小
  • 打赏
  • 举报
回复
先设置下图片的宽和高
package cn.com.origin.net; import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; public class Server { public Server() { } public void listen() throws IOException { ServerSocket server = new ServerSocket(8002); while (true) { try { Socket client = server.accept(); if (client != null) { ServerProcessor processor = new ServerProcessor(client); processor.start(); } } catch (Throwable e) { e.printStackTrace(); } } } public static void main(String[] args) throws IOException { Server s = new Server(); s.listen(); } } package cn.com.origin.net; import java.awt.AWTException; import java.awt.Rectangle; import java.awt.Robot; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.Socket; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import com.sun.image.codec.jpeg.ImageFormatException; import com.sun.image.codec.jpeg.JPEGCodec; public class ServerProcessor extends Thread { // private Socket client; public static final int SEND_IMAGE_SYMBOL = 0x00000000; // private InputStream is; private DataOutputStream dos; private Robot robot; private Rectangle rect; private BufferedImage bm; public ServerProcessor(Socket client) throws IOException, AWTException { // this.client = client; // is = client.getInputStream(); dos = new DataOutputStream(client.getOutputStream()); // bm = ImageIO.read(new File("E:\\Caokai\\001.png")); robot = new Robot(); rect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()); } public void run() { while (true) { try { bm = robot.createScreenCapture(rect); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ZipOutputStream zis = new ZipOutputStream(bos); zis.setLevel(9); zis.putNextEntry(new ZipEntry("ScreenCapture.jpg")); JPEGCodec.createJPEGEncoder(zis).encode(bm); // ImageIO.write(bm, "jpg", zis); zis.closeEntry(); bos.flush(); byte[] data = bos.toByteArray(); dos.write(SEND_IMAGE_SYMBOL); // System.out.println("Server - data.length = " + data.length); dos.writeInt(data.length); dos.write(data); dos.flush(); // 每秒2帧 Thread.sleep(500); } catch (ImageFormatException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); break; } catch (InterruptedException e) { e.printStackTrace(); } } } }

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧