← Back

Module io

enum ImageFormat

Source: io.joule:12

fn detect_format(data: &[u8]) -> ImageFormat

Source: io.joule:37

fn format_from_extension(path: &str) -> ImageFormat

Detect format from file extension

Source: io.joule:88

fn load_image(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:120

fn save_image(image: &Image, format: ImageFormat) -> Result<Vec<u8>, ImageError>

Source: io.joule:143

enum ImageError

Source: io.joule:160

fn decode_bmp(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:175

fn encode_bmp(image: &Image) -> Result<Vec<u8>, ImageError>

Source: io.joule:252

fn decode_ppm(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:318

fn decode_pgm(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:384

fn decode_pbm(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:435

fn encode_ppm(image: &Image) -> Result<Vec<u8>, ImageError>

Source: io.joule:487

fn encode_pgm(image: &Image) -> Result<Vec<u8>, ImageError>

Source: io.joule:519

fn encode_pbm(image: &Image) -> Result<Vec<u8>, ImageError>

Source: io.joule:539

fn decode_png(data: &[u8]) -> Result<Image, ImageError>

Source: io.joule:576

fn encode_png(image: &Image) -> Result<Vec<u8>, ImageError>

Source: io.joule:704

fn write_chunk(out: &mut Vec<u8>, chunk_type: &[u8; 4], data: &[u8])

Source: io.joule:750

fn inflate(data: &[u8]) -> Result<Vec<u8>, ImageError>

Simple inflate (zlib decompression)

Source: io.joule:767

fn deflate_decode(data: &[u8]) -> Result<Vec<u8>, ImageError>

Simple deflate decompression

Source: io.joule:790

fn decode_huffman_block(bits: &mut BitReader, out: &mut Vec<u8>, fixed: bool) -> Result<(), ImageError>

Source: io.joule:830

fn deflate(data: &[u8]) -> Result<Vec<u8>, ImageError>

Simple deflate compression (for PNG encoding)

Source: io.joule:865

struct BitReader

Source: io.joule:903

fn new(data: &'a [u8]) -> Self

Source: io.joule:912

fn read_bits(&mut self, n: u8) -> Result<u32, ImageError>

Source: io.joule:922

fn align(&mut self)

Source: io.joule:938

fn build_fixed_huffman_tables() -> (Vec<(u16, u8)>, Vec<(u16, u8)>)

Source: io.joule:944

fn build_dynamic_huffman_tables(bits: &mut BitReader) -> Result<(Vec<(u16, u8)>, Vec<(u16, u8)>), ImageError>

Source: io.joule:971

fn build_huffman_table(lengths: &[u8]) -> Result<Vec<(u16, u8)>, ImageError>

Source: io.joule:1031

fn decode_huffman(bits: &mut BitReader, table: &[(u16, u8)]) -> Result<usize, ImageError>

Source: io.joule:1063

fn decode_length(bits: &mut BitReader, lit: usize) -> Result<usize, ImageError>

Source: io.joule:1083

fn decode_distance(bits: &mut BitReader, code: usize) -> Result<usize, ImageError>

Source: io.joule:1104

fn paeth_predictor(a: u8, b: u8, c: u8) -> u8

Source: io.joule:1132

fn adler32(data: &[u8]) -> u32

Source: io.joule:1147

fn crc32(data: &[u8]) -> u32

Source: io.joule:1159

fn read_u16_le(data: &[u8]) -> u16

Source: io.joule:1190

fn read_u32_le(data: &[u8]) -> u32

Source: io.joule:1194

fn read_i32_le(data: &[u8]) -> i32

Source: io.joule:1198

fn read_u32_be(data: &[u8]) -> u32

Source: io.joule:1202

fn find_header_end(data: &[u8], num_values: usize) -> Result<usize, ImageError>

Source: io.joule:1206

fn test_format_detection()

Source: io.joule:1255

fn test_ppm_roundtrip()

Source: io.joule:1263

fn test_bmp_roundtrip()

Source: io.joule:1291

fn test_adler32()

Source: io.joule:1309