用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:
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;
}
分享到:
相关推荐
赠送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文档:...
赠送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; 包含...
webp-imageio-0.4.2.zip 包含:.jar .so/.dll 涵盖linux 32/64 windows 32/64 版本
赠送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文档:...
imageio 2.3.0版本,下载到本地进行安装,直接pip安装可能因为下载文件速度太慢而报错。安装方法:1.打开cmd 2.安装whl文件,pip install imageio-2.3.0-py2.py3-none-any.whl(依赖会自行安装,下载速度还可以)
赠送jar包:imageio-psd-3.1.1.jar; 赠送原API文档:imageio-psd-3.1.1-javadoc.jar; 赠送源代码:imageio-psd-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-psd-3.1.1.pom; 包含翻译后的API文档:...
javax.imageio-1.0.5.jar, java处理图片的库。 从maven中央仓库下载的。实测可用。
赠送jar包:imageio-bmp-3.1.1.jar; 赠送原API文档:imageio-bmp-3.1.1-javadoc.jar; 赠送源代码:imageio-bmp-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-bmp-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-tiff-3.1.1.jar; 赠送原API文档:imageio-tiff-3.1.1-javadoc.jar; 赠送源代码:imageio-tiff-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-tiff-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-tiff-3.1.1.jar; 赠送原API文档:imageio-tiff-3.1.1-javadoc.jar; 赠送源代码:imageio-tiff-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-tiff-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-jpeg-3.1.1.jar; 赠送原API文档:imageio-jpeg-3.1.1-javadoc.jar; 赠送源代码:imageio-jpeg-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-jpeg-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-jpeg-3.1.1.jar; 赠送原API文档:imageio-jpeg-3.1.1-javadoc.jar; 赠送源代码:imageio-jpeg-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-jpeg-3.1.1.pom; 包含翻译后的API文档:...
NULL 博文链接:https://o-oand0-0.iteye.com/blog/1585854
赠送jar包:jai-imageio-core-1.3.0.jar; 赠送原API文档:jai-imageio-core-1.3.0-javadoc.jar; 赠送源代码:jai-imageio-core-1.3.0-sources.jar; 赠送Maven依赖信息文件:jai-imageio-core-1.3.0.pom; 包含...
赠送jar包:imageio-bmp-3.1.1.jar; 赠送原API文档:imageio-bmp-3.1.1-javadoc.jar; 赠送源代码:imageio-bmp-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-bmp-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-psd-3.1.1.jar; 赠送原API文档:imageio-psd-3.1.1-javadoc.jar; 赠送源代码:imageio-psd-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-psd-3.1.1.pom; 包含翻译后的API文档:...
赠送jar包:imageio-metadata-3.1.1.jar; 赠送原API文档:imageio-metadata-3.1.1-javadoc.jar; 赠送源代码:imageio-metadata-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-metadata-3.1.1.pom; 包含...
NULL 博文链接:https://zhangmingji.iteye.com/blog/1969693
赠送jar包:imageio-metadata-3.1.1.jar; 赠送原API文档:imageio-metadata-3.1.1-javadoc.jar; 赠送源代码:imageio-metadata-3.1.1-sources.jar; 赠送Maven依赖信息文件:imageio-metadata-3.1.1.pom; 包含...