pub fn serialize<W: Write>(
into_output: W,
color_av1_data: &[u8],
alpha_av1_data: Option<&[u8]>,
width: u32,
height: u32,
depth_bits: u8,
) -> Result<()>
Expand description
Makes an AVIF file given encoded AV1 data (create the data with rav1e
)
color_av1_data
is already-encoded AV1 image data for the color channels (YUV, RGB, etc.).
You can parse this information out of AV1 payload with avif-parse
.
The color image should have been encoded without chroma subsampling AKA YUV444 (Cs444
in rav1e
)
AV1 handles full-res color so effortlessly, you should never need chroma subsampling ever again.
Optional alpha_av1_data
is a monochrome image (rav1e
calls it “YUV400”/Cs400
) representing transparency.
Alpha adds a lot of header bloat, so don’t specify it unless it’s necessary.
width
/height
is image size in pixels. It must of course match the size of encoded image data.
depth_bits
should be 8, 10 or 12, depending on how the image was encoded.
Color and alpha must have the same dimensions and depth.
Data is written (streamed) to into_output
.