maven项目的pom.xml添加以下依赖
<dependency>
<groupId>net.ifok.image</groupId>
<artifactId>webp4j</artifactId>
<version>1.0.0</version>
</dependency>
WebP 图片可以使用默认设置进行解码,如下所示。
BufferedImage image = ImageIO.read(new File("/path/input.webp"));
ImageIO.write(image,"png",new File("d:\\tmp\\11.jpg"));
需要自定义 WebP 解码器设置,您需要创建 ImageReader 和 WebPReadParam 的实例进行配置
// 获取 WebP ImageReader 实例
ImageReader reader = ImageIO.getImageReadersByMIMEType("image/webp").next();
// 配置解码参数
WebPReadParam readParam = new WebPReadParam();
readParam.setBypassFiltering(true);
// 在 ImageReader 上配置输入
reader.setInput(new FileImageInputStream(new File("input.webp")));
// 解码图片
BufferedImage image = reader.read(0, readParam);
编码以与解码类似的方式完成。
您可以使用 Image I/O 便捷方法使用默认设置进行编码。
// 从某处获取要编码的图像
BufferedImage image = ImageIO.read(new File("input.png"));
// 使用默认设置将其编码为 webp
ImageIO.write(image, "webp", new File("output.webp"));
或者,您可以创建 ImageWriter 和 WebPWriteParam 的实例以使用自定义设置。
// 从某处获取要编码的图像
BufferedImage image = ImageIO.read(new File("input.png"));
// 获取 WebP ImageWriter 实例
ImageWriter writer = ImageIO.getImageWritersByMIMEType("image/webp").next();
// 配置编码参数
WebPWriteParam writeParam = new WebPWriteParam(writer.getLocale());
writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
writeParam.setCompressionType(p.getCompressionTypes()[WebPWriteParam.LOSSLESS_COMPRESSION]);
// 在 ImageWriter 上配置输出
writer.setOutput(new FileImageOutputStream(new File("output.webp")));
// 编码
writer.write(null, new IIOImage(image, null, null), writeParam);
This is a fork from luciad/webp-imageio
Java Image I/O reader and writer for the Google WebP image format.
- windows (32, 64 bit)
- linux (64 bit)
- mac (64 bit)
- 本地动态文件保存于jar包无需额外对jdk添加配置
- 发布到中央仓库 (
net.ifok.image
:webp4j
artifact)
webp-imageio is distributed under the Apache Software License version 2.0.