pub struct AvifData {
pub primary_item: TryVec<u8>,
pub alpha_item: Option<TryVec<u8>>,
pub premultiplied_alpha: bool,
pub grid_config: Option<GridConfig>,
pub grid_tiles: TryVec<TryVec<u8>>,
pub animation: Option<AnimationConfig>,
}AvifParser for zero-copy parsing insteadFieldsยง
ยงprimary_item: TryVec<u8>AvifParser for zero-copy parsing insteadAV1 data for the color channels.
The collected data indicated by the pitm box, See ISO 14496-12:2015 ยง 8.11.4
alpha_item: Option<TryVec<u8>>AvifParser for zero-copy parsing insteadAV1 data for alpha channel.
Associated alpha channel for the primary item, if any
premultiplied_alpha: boolAvifParser for zero-copy parsing insteadIf true, divide RGB values by the alpha value.
See prem in MIAF ยง 7.3.5.2
grid_config: Option<GridConfig>AvifParser for zero-copy parsing insteadGrid configuration for tiled images.
If present, the image is a grid and grid_tiles contains the tile data.
Grid layout is determined either from an explicit ImageGrid property box or
calculated from ispe (Image Spatial Extents) properties.
ยงExample
#[allow(deprecated)]
use std::fs::File;
#[allow(deprecated)]
let data = zenavif_parse::read_avif(&mut File::open("image.avif")?)?;
if let Some(grid) = data.grid_config {
println!("Grid: {}ร{} tiles", grid.rows, grid.columns);
println!("Output: {}ร{}", grid.output_width, grid.output_height);
println!("Tile count: {}", data.grid_tiles.len());
}grid_tiles: TryVec<TryVec<u8>>AvifParser for zero-copy parsing insteadAV1 payloads for grid image tiles.
Empty for non-grid images. For grid images, contains one entry per tile.
Tile ordering: Tiles are guaranteed to be in the correct order for grid assembly, sorted by their dimgIdx (reference index). This is row-major order: tiles in the first row from left to right, then the second row, etc.
animation: Option<AnimationConfig>AvifParser for zero-copy parsing insteadAnimation configuration (for animated AVIF with avis brand)
When present, primary_item contains the first frame
Implementationsยง
Sourceยงimpl AvifData
impl AvifData
pub fn from_reader<R: Read>(reader: &mut R) -> Result<Self>
AvifParser::from_reader() insteadSourcepub fn primary_item_metadata(&self) -> Result<AV1Metadata>
pub fn primary_item_metadata(&self) -> Result<AV1Metadata>
Parses AV1 data to get basic properties of the opaque channel
Sourcepub fn alpha_item_metadata(&self) -> Result<Option<AV1Metadata>>
pub fn alpha_item_metadata(&self) -> Result<Option<AV1Metadata>>
Parses AV1 data to get basic properties about the alpha channel, if any