如何使用Java实现WebP图片转PNG格式的转换器
Java实现WebP转PNG的解决方法
问题原因
Java原生ImageIO默认没有内置WebP格式的编解码器,因此读取WebP文件时会返回null,无法执行后续的转写操作。
可直接兼容原有代码的解决方案
引入ImageIO的第三方WebP扩展插件即可,无需大幅修改原有逻辑,推荐使用TwelveMonkeys的WebP支持模块:
1. 添加项目依赖
如果使用Maven管理项目,在pom.xml中添加如下依赖:
<dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-webp</artifactId> <version>3.10.1</version> </dependency>
如果使用Gradle管理项目,在build.gradle的dependencies块中添加:
implementation 'com.twelvemonkeys.imageio:imageio-webp:3.10.1'
如果是无构建工具的普通项目,直接下载对应jar包导入项目依赖即可。
2. 修正并使用原有代码
注意Java字符串中的反斜杠需要转义,修改后的完整代码如下:
import javax.imageio.ImageIO; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; public class WebpToPngConverter { public static void main(String[] args) throws IOException { // 路径中的反斜杠需要转义,也可以替换为正斜杠避免转义问题 String path = "C:\\Users\\matti\\Desktop\\eru webp\\01_(1).webp"; File input = new File(path); BufferedImage imagewebp = ImageIO.read(input); ImageIO.write(imagewebp, "png", new File("output.png")); } }
注意事项
- 插件会通过SPI机制自动被ImageIO识别,不需要手动注册编解码器
- 支持有损、无损、带透明通道的所有常见WebP格式,无需额外适配
内容的提问来源于stack exchange,提问作者LAC
相关产品推荐
相关产品推荐

