imagesize/formats/
astc.rs1use std::io::{BufRead, Seek, SeekFrom};
2
3use crate::{ImageResult, ImageSize};
4
5pub fn size<R: BufRead + Seek>(reader: &mut R) -> ImageResult<ImageSize> {
6 reader.seek(SeekFrom::Start(7))?; let mut xsize_bytes = [0u8; 4];
15 reader.read_exact(&mut xsize_bytes[0..3])?;
16 let width = u32::from_le_bytes(xsize_bytes) as usize;
17
18 let mut ysize_bytes = [0u8; 4];
19 reader.read_exact(&mut ysize_bytes[0..3])?;
20 let height = u32::from_le_bytes(ysize_bytes) as usize;
21
22 Ok(ImageSize { width, height })
23}
24
25pub fn matches(header: &[u8]) -> bool {
26 header.len() >= 4
28 && header[0] == 0x13
29 && header[1] == 0xAB
30 && (header[2] == 0xA0 || header[2] == 0xA1)
31 && header[3] == 0x5C
32}