浏览 6701 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-08-28
原因可能是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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-18
能不能把ThumbnailConvert 贴出来看看
|
|
返回顶楼 | |
发表时间:2008-09-18
我现在的问题比较郁闷~~
在读取cmyk模式的图片时,报javax.imageio.IIOException: Unsupported Image Type |
|
返回顶楼 | |
发表时间:2008-09-18
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; } |
|
返回顶楼 | |
发表时间:2008-09-18
你需要安装imagemagick,到http://www.imagemagick.org下载安装
|
|
返回顶楼 | |