使用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; }
具体原因还没有找出,
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架