# img2avif
Convert images to AVIF format.
## Usage
This library provides functions to convert image data into the AVIF format.
```rust
use std::fs::File;
use img2avif::{convert, convert_with_quality_speed};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let file = File::open("path/to/your/image.png")?; // Supports PNG, JPEG, WebP, etc.
// Use default quality (85) and speed (6)
let avif_data = convert(file)?;
std::fs::write("output.avif", avif_data)?;
println!("Successfully converted image to AVIF!");
Ok(())
}
```
If you want to customize quality and speed:
```rust
use std::fs::File;
use img2avif::convert_with_quality_speed;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let file = File::open("path/to/your/image.jpg")?;
// quality: 0-100, speed: 0-10
let avif_data = convert_with_quality_speed(file, 90, 1)?;
std::fs::write("output.avif", avif_data)?;
Ok(())
}
```
See `src/lib.rs` for the function implementation and tests for more examples.
## Dependencies
- [image](https://crates.io/crates/image) (version 0.25.6 with "avif" feature)
## Building and Testing
```bash
# Build the project
cargo build
# Run tests
cargo test
```
## License
This project is licensed under the MIT License. See the `Cargo.toml` file for details.