用java处理图片的时候,ImageIO读jpg的时候出现exception:bandOffsets.length is wrong。我也遇到过,最终也解决啦,把成果跟大家分享。
原因可能是JPEG图片的ICC信息可能已经被破坏了,所以ImageIO会抛出异常
解决办法:
BufferedImage bis = null;
try{
bis = ImageIO.read(file);
bis.getWidth();
bis.getHeight();
}catch(Exception e){
try
{
ThumbnailConvert tc = new ThumbnailConvert();
tc.setCMYK_COMMAND(file.getPath());
Image image =null;
image = Toolkit.getDefaultToolkit().getImage(file.getPath());
MediaTracker mediaTracker = new MediaTracker(new Container());
mediaTracker.addImage(image, 0);
mediaTracker.waitForID(0);
image.getWidth(null);
image.getHeight(null);
}catch (Exception e1){
e1.printStackTrace();
}
}
这两句代码,是处理cmyk类型的图片,需要ImageMagick的支持
ThumbnailConvert tc = new ThumbnailConvert();
tc.setCMYK_COMMAND(file.getPath());//用于把cmyk转成rgb
ImageMagick的具体指令是:mogrify -colorspace RGB -quality 100 file1
ThumbnailConvert.java
private String CMYK_COMMAND = "mogrify -colorspace RGB -quality 80 file1";//转换cmyk格式
public void setCMYK_COMMAND(String file1) {
exeCommand(CMYK_COMMAND.replace("file1", file1));
}
public boolean exeCommand(String cmd){
InputStreamReader ir = null;
LineNumberReader input = null;
try
{
//linux下java执行指令:Runtime.getRuntime().exec (String str);
Process process = Runtime.getRuntime().exec (cmd);
ir=new InputStreamReader(process.getInputStream());
input = new LineNumberReader (ir);
while ((input.readLine ()) != null){
}
ir.close();
input.close();
}
catch (java.io.IOException e){
System.err.println ("IOException " + e.getMessage());
return false;
}
return true;
}
分享到:
相关推荐
在Java编程环境中,图片处理是一项常见的任务,但有时可能会遇到“javax.imageio.IIOException: Unsupported Image Type”的错误。这个异常通常表示Java的`ImageIO`类库无法识别或支持所尝试读取或写入的图像格式。...
javax.imageio-1.0.5.jar, java处理图片的库。 从maven中央仓库下载的。实测可用。
Exception in thread “main” javax.imageio.IIOException: Can’t read input file!:无法读取输入文件! 原可以从两个方面分析: 路径中文乱码问题 target/classes文件夹中并没有找到图片 加粗样式看下代码: ...
赠送jar包:jai-imageio-core-1.4.0.jar; 赠送原API文档:jai-imageio-core-1.4.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.4.0.pom; 包含...
赠送jar包:imageio-core-3.1.1.jar; 赠送原API文档:imageio-core-3.1.1-javadoc.jar; 赠送源代码:imageio-core-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-core-3.1.1.pom; 包含翻译后的API文档:...
Image I/O扩展了Java标准版中的`javax.imageio`包,提供了更强大的图像处理功能,如对多种非标准图像格式的支持,如TIFF、JPEG 2000等。此外,JAI Image I/O还提供了图像的解码、编码、色彩空间转换等功能,对于进行...
javax.media.jai.codec.jar包maven下载失败可下载后手动导入
javax.imageio.ImageIO:用于读取和保存图像。 javax.swing:用于创建图形用户界面。 java.awt:用于图像处理。 java.awt.event:用于处理事件。 java.io:用于文件操作。 java.util.Random:用于生成高斯噪声。 ...
赠送jar包:jai-imageio-core-1.4.0.jar; 赠送原API文档:jai-imageio-core-1.4.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.4.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.4.0.pom; 包含...
Java Advanced Imaging Image I/O (JAI Image I/O) 是一个扩展了Java平台图像处理和I/O功能的库,主要用于读取、写入和处理多种图像格式。`jai_imageio-1.1.jar`是这个库的一个特定版本,这里是1.1版,相较于网上的...
jai_codec-1.1.3.jar jai_core.jar jai_imageio.jar jimi-1.0.jar
OCR(Optical Character Recognition,光学字符识别)技术是将图像中的文本转换为机器可读格式的关键工具,而`com.sun.media.imageio.plugins.tiff.TIFFImageWriteParam`则是Java中处理TIFF图像格式时的一个关键类,...
该工具类用于java代码ImageIO.read()的文件为jpg格式,且色彩模式为cmyk格式时抛异常Unsupported Image Type 可以导入该工具类,代码不需要加任何处理,再次运行即可。下载前请先参考...
1. **读取图像**:使用`javax.imageio.ImageIO.read()`方法,可以读取各种支持的图像格式,如JPEG、PNG等,添加WebP插件后,也可以读取WebP格式。 2. **写入图像**:`javax.imageio.ImageIO.write()`方法用于将...
与原始的jai-imageio-core不同,该项目被称为“独立”,它删除了对jai-core软件包( javax.media.jai )和JPEG 2000( jj2000 )的jj2000 。 该版本也不包括libJIIO的C实现,这意味着该版本是平台独立的,并且根据...
首先,`jai-imageio-1.1.jar`是Java Advanced Imaging (JAI) Image I/O框架的一部分,它扩展了Java标准版(Java SE)的图像I/O功能。JAI是一个用于高级图像处理的API,提供了一系列算法和操作,如旋转、缩放、颜色...
它扩展了Java的标准`javax.imageio`包,增加了对JPEG 2000、TIFF、BMP等非标准格式的支持。JAI Image I/O允许开发者通过插件机制来处理新的或自定义的图像格式,这使得平台的可扩展性非常强。 3. **jai_codec-1.1.3...
2. **写入 WebP 图像**:利用 ImageIO.write() 方法,将 Java 中的 BufferedImage 对象转换为 WebP 格式,进行文件保存或网络传输。 3. **支持透明度和动画**:由于 WebP 支持透明通道(Alpha 通道),这个库同样...
image = imageio.imread('example.png') # 显示图片(需额外引入matplotlib库) import matplotlib.pyplot as plt plt.imshow(image) plt.show() ``` 总结,imageio是Python中一个强大且易用的图像和视频处理库,...
可解决JAVA读取图片异常javax.imageio.IIOException: Unsupported Image Type。 解决ps编辑的图片或本身图片格式是cmyk格式,java.awt包无法读取问题。 官方下载的压缩包。 里面有说明文档和icc文件。如:ISOcoated_...