net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.
at net.coobird.thumbnailator.tasks.io.InputStreamImageSource.read(Unknown Source)
at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source)
at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
at net.coobird.thumbnailator.Thumbnails$Builder.toOutputStream(Unknown Source)

处理代码如下:

          Blob zp = rs.getBlob("swry_zp");
if(zp!=null){
is=zp.getBinaryStream();
if (null != is) {
baos = new ByteArrayOutputStream();
//对图片进行压缩处理
Thumbnails.of(is).forceSize(98, 137).toOutputStream(baos);
//将照片进行Base64转码
sy.setSwry_zp(Base64.encodeBase64String(baos.toByteArray()));
}
}

从oracle中读出照片信息,照片以blog格式存储,然后以Base64编码返回给客户端,以上错误信息只是在获取某些照片信息时报错,有些照片

这种方式处理是没有问题的.当前是:

Thumbnails.of(is).forceSize(98, 137).toOutputStream(baos);
抛出IO异常,然后rs就中断了:
 while(rs.next()){}

其源码中抛出此异常的代码段如下:

public BufferedImage read() throws IOException
{
ImageInputStream iis = ImageIO.createImageInputStream(is); if (iis == null)
{
throw new IOException("Could not open InputStream.");
} Iterator<ImageReader> readers = ImageIO.getImageReaders(iis);
if (!readers.hasNext())
{
throw new UnsupportedFormatException(
UnsupportedFormatException.UNKNOWN,
"No suitable ImageReader found for source data."
);
} ImageReader reader = readers.next();
reader.setInput(iis);
inputFormatName = reader.getFormatName(); BufferedImage img = reader.read(FIRST_IMAGE_INDEX); iis.close(); return img;
}

具体原因还没有找出,

使用thumbnailator 时部分图片抛异常的更多相关文章

  1. 【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】

    public static void main(String[] args) throws IOException { /** * PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异 ...

  2. 线程执行synchronized同步代码块时再次重入该锁过程中抛异常,是否会释放锁

    一个线程执行synchronized同步代码时,再次重入该锁过程中,如果抛出异常,会释放锁吗? 如果锁的计数器为1,抛出异常,会直接释放锁: 那如果锁的计数器为2,抛出异常,会直接释放锁吗? 来简单测 ...

  3. 使用Thumbnailator处理gif图片时遇到java.lang.ArrayIndexOutOfBoundsException: 4096异常处理

    环境 1.7.0_80 在使用Thumbnailator处理gif图片时,遇到问题: Exception in thread "main" java.lang.ArrayIndex ...

  4. netload 加载程序集抛异常----无法加载程序集解决办法

    netload 加载程序集抛异常----无法加载程序集 错误信息如下: 无法加载程序集.错误详细信息: System.BadImageFormatException: 未能加载文件或程序集“file: ...

  5. iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告

    一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...

  6. Android加载大图片OOM异常解决

      尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过 ...

  7. CloudStack的VO在调用setRemoved方法抛异常的原因

    今天在开发中发现一个问题,本来想对一个VO对象的removed值赋值,然后去update一下这条记录,一个最简单的set方法,但是在调用时直接抛异常了. 1: public void setRemov ...

  8. Java动态 遍历List 时删除List特征元素 异常问题 及解决方案总结

    首先.这是一个极其简单的问题,大牛可忽略.新手可能会遇到,Java中遍历某个List 时删除该List元素 会抛出异常. 这一个简单的问题再高手严重不值一提,但新手可能会比較困惑,用哪种方式能够安全有 ...

  9. java通过抛异常来返回提示信息

    结论:如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackTr ...

随机推荐

  1. 【JS跨域请求】Ajax跨域请求JSONP

    前两天被问到ajax跨域如何解决,还真被问住了,光知道有个什么jsonp,迷迷糊糊的没有说上来.抱着有问题必须解决的态度,我看了许多资料,原来如此... 为何一直知道jsonp,但一直迷迷糊糊的不明白 ...

  2. JAVA复习2 JAVA开发环境配置

    我想写的东西主要是JAVA编程里的难点和易混淆点,所以在这里给大家提供一些经典的博客地址或网址.. W3C JAVA教程  JAVA开发环境配置篇: http://www.w3cschool.cc/j ...

  3. C++转换函数

    1. 赋值操作时把右操作数隐式转化为左操作数2. 通过普通单参数构造函数把其他类型的对象隐式转换为我们的类类型3. 通过转换函数operator type()这种成员函数可以把类类型转成其他类型,这样 ...

  4. codevs 1036 商务旅行 (倍增LCA)

    /* 在我还不知道LCA之前 暴力跑的SPFA 70分 三个点TLE */ #include<iostream> #include<cstdio> #include<cs ...

  5. 176. [USACO Feb07] 奶牛聚会

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

  6. MySql Connector/Net Mysql like 搜索中文的问题(c#和asp.net连接mysql)

    Connector/Net 6.9.8 选择.net/mono即可,不需要安装. 将对应版本的MySql.Data.dll复制到bin目录下即可使用 http://dev.mysql.com/down ...

  7. 【转】 iOS 两种方法实现左右滑动出现侧边菜单栏 slide view

      原文: http://blog.csdn.net/crayondeng/article/details/9057637 --- 关于评论中,很多网友都是需要这部分的相关源码,其实在我上传的新浪微博 ...

  8. Objective-C学习篇01—类的声明与实现

    Objective-C,是美国人布莱德·确斯(Brad Cox)于 1980 年年初发明的一 种程序设计语言,其与同时代的 C++ 一样,都是在 C 的基础上加入面向对象特性扩充而成的.Objecti ...

  9. JetBrains公司的IDE使用技巧

    1.自定义Live Templates:   点击+添加自己的.最后记住要点击,change或default来设置在哪些文件上使用代码片段.

  10. 学习springMVC实例1——配置和跳转到HelloWorld

    本文让大家迅速掌握springMVC的使用方法,以最简单的方式理解此框架 一.用eclipse新建一个web项目,命名为springMVC1,tomcat的端口号为9090 二.在WEB-INF目录下 ...