背景
使用 thumbnailator 生成 webp 类型图片的缩略图。
环境
thumbnailator 版本:0.4.13
原始图片类型:webp
错误信息
net.coobird.thumbnailator.tasks.UnsupportedFormatException: No suitable ImageReader found for source data.
at net.coobird.thumbnailator.tasks.io.InputStreamImageSource.read(Unknown Source) ~[thumbnailator-0.4.8.jar:0.4.8]
at net.coobird.thumbnailator.tasks.SourceSinkThumbnailTask.read(Unknown Source) ~[thumbnailator-0.4.8.jar:0.4.8]
at net.coobird.thumbnailator.Thumbnailator.createThumbnail(Unknown Source) ~[thumbnailator-0.4.8.jar:0.4.8]
at net.coobird.thumbnailator.Thumbnails$Builder.toFile(Unknown Source) ~[thumbnailator-0.4.8.jar:0.4.8]
复制代码
解决方案
引入第三方支持处理 webp 图片类型的类库即可解决。因为 thumbnailator 底层使用的 JDK 的 javax.imageio 类库处理图片,显然 JDK 原生处理图片的类库只支持绝大部常见的图片类型,需要引入第三方类库对 JDK 的 javax.imageio 进行功能的补充和扩展,引入后系统会自动感知对业务代码无侵入性。
引入第三方类库
Gradle
implementation group: 'org.sejda.imageio', name: 'webp-imageio', version: '0.1.6'
复制代码
Maven
<dependency>
<groupId>org.sejda.imageio</groupId>
<artifactId>webp-imageio</artifactId>
<version>0.1.6</version>
</dependency>
复制代码
评论