Java图片压缩遇到 "No suitable ImageReader found for source data."

 问题:

  使用压缩工具的时候突然遇到 图片压缩失败的情况。此时检查一下要上传的图片是否正常。

处理方式:

  检查图片数据是否异常,一个图片五六兆。图片虽然是JPG结尾的,但是不在 ImageIO” 类的支持范围内。例如 WebP 图片虽然可以以JPG格式结尾,但是  ImageIO” 类不支持方法解析

代码如下

复制代码
 1       URL url = new URL("https:/***/1696905412973.jpg");
 3         ByteArrayInputStream byteArrayInputStream = null;
 4         try {
 5             byteArrayInputStream = new ByteArrayInputStream(url.getFile().getBytes());
 6             Thumbnails.of(byteArrayInputStream).scale(0.5f).outputQuality(0.5f).toFile("E:\\tmp\\1.jpg");
 7         } catch (IOException e) {
 8             e.printStackTrace();
 9              FileOutputStream out = new FileOutputStream(new File("E:\\tmp\\2.jpg"));
10             // Thumbnails.of(url.openStream()).size(300,300).toOutputStream(out);
11             InputStream inputStream = url.openStream();
12             IoUtil.copy(inputStream,out);
13         }finally {
14             if (byteArrayInputStream != null){
15                 byteArrayInputStream.close();
16             }
17         }
复制代码

代码一直走catch里面的逻辑

1 Exception in thread "main" net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.
2     at net.coobird.thumbnailator.tasks.io.InputStreamImageSource.read(Unknown Source)
3     at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source)
4     at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source)
5     at net.coobird.thumbnailator.Thumbnails$Builder.toOutputStream(Unknown Source)

在跟踪详细代码的时候发现数据流解析使用的是  ImageIO”

 正常的截图数据  var2.hasNext() 是不为空的

图片格式异常的话你将文件流再怎么转也是过不去的。

posted @   烟雨蒙尘  阅读(1264)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2019-10-25 泛型
点击右上角即可分享
微信分享提示