Java 中读取 WebP 格式的图片需要使用支持该格式的图像处理库。在 Maven 项目中,可以使用 `libwebp` 库来读取和处理 WebP 图片。 首先,在 Maven 项目的 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.webjars</groupId> <artifactId>webp-bin</artifactId> <version>1.2.1</version> </dependency> ``` 这个依赖会下载 `webp-bin` 库,其中包含 `libwebp` 库。 接下来,可以使用 `ImageIO` 类来读取 WebP 图片。由于 `ImageIO` 默认不支持 WebP 格式,需要使用 `ImageReader` 类来读取。以下是一个简单的示例代码: ```java import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; public class WebPReader { public static void main(String[] args) { try { // 获取 WebP 图片的 ImageReader ImageReader reader = ImageIO.getImageReadersByFormatName("webp").next(); // 打开图片文件 File file = new File("path/to/webp/image.webp"); ImageInputStream stream = ImageIO.createImageInputStream(file); // 将 ImageReader 的输入流设置为图片文件 reader.setInput(stream); // 读取图片 BufferedImage image = reader.read(0); // 处理图片... // 关闭流和 ImageReader stream.close(); reader.dispose(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的代码中,首先使用 `ImageIO.getImageReadersByFormatName("webp")` 方法获取支持 WebP 格式的 `ImageReader` 对象。然后,打开 WebP 图片文件,并将其设置为 `ImageReader` 的输入流。使用 `reader.read(0)` 方法读取图片。这里的 `0` 表示读取图片的第一个页面,因为 WebP 格式支持多页面图片。 注意,在使用完 `ImageInputStream` 和 `ImageReader` 后,需要调用它们的 `close()` 和 `dispose()` 方法来关闭流和释放资源。 以上是一个简单的示例,你可以根据自己的需求对读取到的 `BufferedImage` 对象进行进一步的处理。 [2024-03-06 21:00:26 | AI写代码神器 | 592点数解答]