Java ImageIO 插件,用于读写 AVIF 图片格式。
- 🖼️ 通过标准 Java ImageIO API 读写 AVIF 图片
- 🎬 支持动画 AVIF(多帧)
- 🎨 支持 10/12 位色深
- 📊 支持 ICC 色彩配置文件
- 📷 支持 EXIF 元数据
- 🔧 可配置编码参数(质量、速度、无损)
- 💻 跨平台支持(Windows x64、Linux x64、macOS arm64)
- ☕ 兼容 Java 8+
💡 将
VERSION替换为最新版本号,见或 Releases
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.Tim0x0:avif-imageio:VERSION'
}repositories {
mavenCentral()
maven("https://jitpack.io")
}
dependencies {
implementation("com.github.Tim0x0:avif-imageio:VERSION")
}<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependency>
<groupId>com.github.Tim0x0</groupId>
<artifactId>avif-imageio</artifactId>
<version>VERSION</version>
</dependency>import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
// 简单读取
BufferedImage image = ImageIO.read(new File("image.avif"));
// 从字节数组读取
byte[] avifData = Files.readAllBytes(Paths.get("image.avif"));
BufferedImage image = ImageIO.read(new ByteArrayInputStream(avifData));import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
BufferedImage image = /* 你的图片 */;
ImageIO.write(image, "avif", new File("output.avif"));import com.github.avifimageio.AvifWriteParam;
import javax.imageio.ImageIO;
import javax.imageio.ImageWriter;
import javax.imageio.stream.ImageOutputStream;
ImageWriter writer = ImageIO.getImageWritersByFormatName("avif").next();
AvifWriteParam param = (AvifWriteParam) writer.getDefaultWriteParam();
param.setQuality(80); // 0-100,默认 75
param.setSpeed(6); // 0-10,默认 6(越高越快)
param.setLossless(false); // true 为无损编码
try (ImageOutputStream ios = ImageIO.createImageOutputStream(new File("output.avif"))) {
writer.setOutput(ios);
writer.write(null, new IIOImage(image, null, null), param);
}
writer.dispose();import com.github.avifimageio.Avif;
if (Avif.isAvailable()) {
// AVIF 支持可用
} else {
Throwable error = Avif.getLoadError();
System.err.println("AVIF 不可用: " + error.getMessage());
}| 平台 | 架构 | 状态 |
|---|---|---|
| Windows | x64 | ✅ |
| Linux | x64 | ✅ |
| macOS | arm64 (M1/M2/M3) | ✅ |
- JDK 8+
- CMake 3.16+
- C 编译器(MSVC/GCC/Clang)
- vcpkg(用于 libavif 依赖)
# 克隆仓库
git clone https://github.com/Tim0x0/avif-imageio.git
cd avif-imageio
# 构建 Java 代码
./gradlew build
# 构建原生库(需要 vcpkg)
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake
cmake --build build --config Release本项目采用 GPL-3.0 许可证。
本项目静态链接了以下开源库:
- libavif - BSD-2-Clause License
- dav1d - BSD-2-Clause License(AV1 解码)
- aom - BSD-2-Clause License(AV1 编码)
- libyuv - BSD-3-Clause License
- libavif - AVIF 编解码库
- dav1d - AV1 解码器(VideoLAN)
- aom - AV1 参考编码器(AOMedia)
- libyuv - 色彩空间转换(Google)
- webp-imageio - 架构参考