使用thumbnailator 时部分图片抛异常
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 时部分图片抛异常的更多相关文章
- 【PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异常】
public static void main(String[] args) throws IOException { /** * PDF单页转化为图片输出 注意:英文或图片类的PDF可转化,中文抛异 ...
- 线程执行synchronized同步代码块时再次重入该锁过程中抛异常,是否会释放锁
一个线程执行synchronized同步代码时,再次重入该锁过程中,如果抛出异常,会释放锁吗? 如果锁的计数器为1,抛出异常,会直接释放锁: 那如果锁的计数器为2,抛出异常,会直接释放锁吗? 来简单测 ...
- 使用Thumbnailator处理gif图片时遇到java.lang.ArrayIndexOutOfBoundsException: 4096异常处理
环境 1.7.0_80 在使用Thumbnailator处理gif图片时,遇到问题: Exception in thread "main" java.lang.ArrayIndex ...
- netload 加载程序集抛异常----无法加载程序集解决办法
netload 加载程序集抛异常----无法加载程序集 错误信息如下: 无法加载程序集.错误详细信息: System.BadImageFormatException: 未能加载文件或程序集“file: ...
- iOS开发——网络篇——UIWebview基本使用,NSInvocation(封装类),NSMethodSignature(签名),JavaScript,抛异常,消除警告
一.UIWebView简介 1.UIWebView什么是UIWebViewUIWebView是iOS内置的浏览器控件系统自带的Safari浏览器就是通过UIWebView实现的 UIWebView不但 ...
- Android加载大图片OOM异常解决
尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图, 因为这些函数在完成decode后,最终都是通过 ...
- CloudStack的VO在调用setRemoved方法抛异常的原因
今天在开发中发现一个问题,本来想对一个VO对象的removed值赋值,然后去update一下这条记录,一个最简单的set方法,但是在调用时直接抛异常了. 1: public void setRemov ...
- Java动态 遍历List 时删除List特征元素 异常问题 及解决方案总结
首先.这是一个极其简单的问题,大牛可忽略.新手可能会遇到,Java中遍历某个List 时删除该List元素 会抛出异常. 这一个简单的问题再高手严重不值一提,但新手可能会比較困惑,用哪种方式能够安全有 ...
- java通过抛异常来返回提示信息
结论:如果把通过抛异常的方式得到提示信息,可以使用java.lang.Throwable中的构造函数: public Throwable(String message) { fillInStackTr ...
随机推荐
- 关于STM32 RTC的使用
直接上代码,很爽. 1.RTC的首次初始化问题 使能时钟:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE) ...
- Maven常用插件--转
=========Maven Report Plugin========= 1.源码分析 <artifactId>maven-pmd-plugin</artifactId> 2 ...
- C#使用DataSet类、DataTable类、DataRow类、OleDbConnection类、OleDbDataAdapter类编写简单数据库应用
//注意:请使用VS2010打开以下的源代码. //源代码地址:http://pan.baidu.com/s/1j9WVR using System; using System.Collections ...
- Python简易爬虫
经常需要下载论文,每次都需要去网页上搜索,然后点击下载,实在麻烦,正好最近刚入门Python,心血来潮,想着写一个爬虫 经过一天查阅资料,基本算是完成了,但是还是不足,比如对知网和万方暂时还不行,但是 ...
- .NET 拼音检索
微软提供了一个Visual Studio International Pack 组件,可以转换简繁体,或者将汉字转换为拼音以及其他语言的支持. https://www.microsoft.com/zh ...
- php SESSION 不能跨页面传递
今天想用一个session来实现用户登录判断,也算是对之前session的探究,查了下资料session的运行机制如下: session是服务器端的一种会话机制,当客户端的请求服务器创建一个sessi ...
- 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法
-----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...
- (转)php 函数名称前的@有什么作用
如:$register_globals = @ini_get('register_globals'); 隐藏错误提示~如果ini_get('register_globals'); 语句错误的话`错误会 ...
- oracle解析xml完成版第二次修改
其实XML字符串就好像是ORACLE中的外部表,因此Oracle对 解析XML字符串一些规则要求非常严格.XML字符串提供的数据就是一张表,所以Oracle必须提供跟 xml数据一致的列头 示例一 S ...
- GCD多线程 在子线程中获取网络图片 在主线程更新
子线程中得所有数据都可以直接拿到主线程中使用 //当触摸屏幕的时候,从网络上下载一张图片到控制器的view上显示 -(void)touchesBegan:(NSSet *)touches withEv ...