相关疑难解决方法(0)

Java ImageIO IIOException:不支持的图像类型?

首次使用Java处理图像,并得到一些未记录得很好的奇怪异常.这是失败的代码行:

BufferedImage imgSelected = ImageIO.read(new File("/abs/url/to/file/image.jpg"));
Run Code Online (Sandbox Code Playgroud)

这一行抛出了一个IIOException,其中不支持的图像类型作为异常消息.我检查并重新检查它实际上是这行引发异常,File对象是有效的,URL是有效的,并且image.jpg实际上是一个有效的JPG,在其他图像查看器中加载完全正常.

我该怎么做才能获得有关此异常性质的更多信息?这是在Java 7中加载图像的传统方式,还是旧的/弃用方法?关于这些"不支持的图像类型"异常的信息并不是很多,当然,ImageIO支持JPG!

谢谢你的帮助!

java image exception javax.imageio

29
推荐指数
3
解决办法
4万
查看次数

带有配置文件的Java CMYK到RGB.输出太暗

有很多次问过类似的问题.但是我仍然不明白为什么在用ICC_Profile转换图片后输出太暗.我尝试了很多配置文件:来自Adobe网站,以及图片本身.

在图像之前

在图像之前

图像之后

图像之后

Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("jpeg");
ImageReader reader = null;
while (readers.hasNext()){
      reader = readers.next();
      if (reader.canReadRaster()){
          break;
      }
}
// read
ImageInputStream ios = ImageIO.createImageInputStream(new FileInputStream(new File(myPic.jpg)));
reader.setInput(ios);
Raster r = reader.readRaster(0, null);

BufferedImage result = new BufferedImage(r.getWidth(), r.getHeight(), bufferedImage.TYPE_INT_RGB);
WritableRaster resultRaster = result.getRaster();
ICC_Profile iccProfile = ICC_Profile.getInstance(new File("profile_name.icc");
ColorSpace cs = new ICC_ColorSpace(iccProfile);
ColorConvertOp cmykToRgb = new ColorConvertOp(cs, result.getColorModel().getColorSpace(), null);
cmykToRgb.filter(r, resultRaster);

// write
ImageIo.write(resul, "jpg", new File("myPic.jpg"));
Run Code Online (Sandbox Code Playgroud)

转换图片后,我还需要做些什么吗?

java cmyk

5
推荐指数
2
解决办法
1万
查看次数

标签 统计

java ×2

cmyk ×1

exception ×1

image ×1

javax.imageio ×1