package core:image/qoi

⌘K
Ctrl+K
or
/

    Types

    Error ¶

    Error :: image.Error
    Related Procedures With Returns

    Image ¶

    Image :: image.Image
    Related Procedures With Parameters
    Related Procedures With Returns

    Options ¶

    Options :: image.Options
    Related Procedures With Parameters

    QOI_Opcode_Tag ¶

    QOI_Opcode_Tag :: enum u8 {
    	// 2-bit tags
    	INDEX = 0,   // 6-bit index into color array follows
    	DIFF  = 64,  // 3x (RGB) 2-bit difference follows (-2..1), bias of 2.
    	LUMA  = 128, // Luma difference
    	RUN   = 192, // Run length encoding, bias -1
    	// 8-bit tags
    	RGB   = 254, // Raw RGB  pixel follows
    	RGBA  = 255, // Raw RGBA pixel follows
    }

    Qoi_Error ¶

    Qoi_Error :: union {
    	image.Error, 
    	os2.Error, 
    	__Qoi_Error, 
    }
    Related Procedures With Returns

    RGBA_Pixel ¶

    RGBA_Pixel :: [4]u8
    Related Procedures With Parameters

    RGB_Pixel ¶

    RGB_Pixel :: [3]u8

    qoi_converter ¶

    qoi_converter :: struct {
    	img:       ^image.Image,
    	allocator: runtime.Allocator,
    }
     

    QOI image converter structure

    Stores the loaded image and allocator for memory management

    Related Procedures With Parameters

    Constants

    QOI_Data_Mask ¶

    QOI_Data_Mask: int : 0b0011_1111

    QOI_Opcode_Mask ¶

    QOI_Opcode_Mask: int : 0b1100_0000

    Variables

    This section is empty.

    Procedures

    destroy ¶

    destroy :: proc(img: ^image.Image) {…}
     

    Cleanup of image-specific data.

    load_from_bytes ¶

    load_from_bytes :: proc(data: []u8, options: image.Options = Options{}, allocator := context.allocator) -> (img: ^image.Image, err: image.Error) {…}
    Related Procedure Groups

    load_from_context ¶

    load_from_context :: proc(ctx: ^$C, options: image.Options = Options{}, allocator := context.allocator) -> (img: ^image.Image, err: image.Error) {…}
    Related Procedure Groups

    load_from_file ¶

    load_from_file :: proc(filename: string, options: image.Options = Options{}, allocator := context.allocator) -> (img: ^image.Image, err: image.Error) {…}
    Related Procedure Groups

    qoi_converter_deinit ¶

    qoi_converter_deinit :: proc(self: ^qoi_converter) {…}

    qoi_converter_encode ¶

    qoi_converter_encode :: proc(
    	self:      ^qoi_converter, 
    	data:      []u8, 
    	in_fmt:    image.color_fmt, 
    	width:     u32, 
    	height:    u32, 
    	allocator := context.allocator, 
    ) -> ([]u8, Qoi_Error) {…}
     

    Encodes image data to QOI format

    Inputs:
    self: Pointer to the QOI converter data: The image pixel data in_fmt: The input color format width: The width of the image height: The height of the image allocator: The allocator to use (default: context.allocator)

    Returns:
    The encoded QOI data as bytes An error if encoding failed

    Example:
    encoded, err := qoi_converter_encode(&converter, pixel_data, .RGBA, 256, 256)
    

    qoi_converter_encode_file ¶

    qoi_converter_encode_file :: proc(
    	self:           ^qoi_converter, 
    	data:           []u8, 
    	in_fmt:         image.color_fmt, 
    	width:          u32, 
    	height:         u32, 
    	save_file_path: string, 
    ) -> Qoi_Error {…}
     

    Encodes image data to QOI format and saves it to a file

    Inputs:
    self: Pointer to the QOI converter data: The image pixel data in_fmt: The input color format width: The width of the image height: The height of the image save_file_path: Path where to save the QOI file

    Returns:
    An error if encoding or saving failed

    Example:
    err := qoi_converter_encode_file(&converter, pixel_data, .RGBA, 256, 256, "output.qoi")
    

    qoi_converter_height ¶

    qoi_converter_height :: proc "contextless" (self: ^qoi_converter) -> u32 {…}
     

    Gets the height of the loaded QOI image

    Inputs:
    self: Pointer to the QOI converter

    Returns:
    The height of the image in pixels, or 0 if no image is loaded

    qoi_converter_load ¶

    qoi_converter_load :: proc(self: ^qoi_converter, data: []u8, out_fmt: image.color_fmt, allocator := context.allocator) -> ([]u8, Qoi_Error) {…}
     

    Loads a QOI image from byte data

    Inputs:
    self: Pointer to the QOI converter data: The QOI image data as bytes out_fmt: The desired output color format allocator: The allocator to use (default: context.allocator)

    Returns:
    The decoded image data as bytes An error if loading failed

    Example:
    data, err := qoi_converter_load(&converter, file_data, .RGBA)
    

    qoi_converter_load_file ¶

    qoi_converter_load_file :: proc(self: ^qoi_converter, file_path: string, out_fmt: image.color_fmt, allocator := context.allocator) -> ([]u8, Qoi_Error) {…}
     

    Loads a QOI image from a file

    Inputs:
    self: Pointer to the QOI converter file_path: Path to the QOI image file out_fmt: The desired output color format allocator: The allocator to use (default: context.allocator)

    Returns:
    The decoded image data as bytes An error if loading failed

    Example:
    data, err := qoi_converter_load_file(&converter, "image.qoi", .RGBA)
    

    qoi_converter_size ¶

    qoi_converter_size :: proc "contextless" (self: ^qoi_converter) -> u32 {…}
     

    Gets the size in bytes of the loaded QOI image

    Inputs:
    self: Pointer to the QOI converter

    Returns:
    The size of the image data in bytes, or 0 if no image is loaded

    qoi_converter_width ¶

    qoi_converter_width :: proc "contextless" (self: ^qoi_converter) -> u32 {…}
     

    Gets the width of the loaded QOI image

    Inputs:
    self: Pointer to the QOI converter

    Returns:
    The width of the image in pixels, or 0 if no image is loaded

    qoi_hash ¶

    qoi_hash :: proc(pixel: [4]u8) -> (index: u8) {…}

    save_to_buffer ¶

    save_to_buffer :: proc(output: ^bytes.Buffer, img: ^image.Image, options: image.Options = Options{}, allocator := context.allocator) -> (err: image.Error) {…}
    Related Procedure Groups

    save_to_file ¶

    save_to_file :: proc(output: string, img: ^image.Image, options: image.Options = Options{}, allocator := context.allocator) -> (err: image.Error) {…}
    Related Procedure Groups

    Procedure Groups

    Source Files

    Generation Information

    Generated with odin version dev-v0.0.1 (vendor "odin") Linux_amd64 @ 2026-01-30 10:23:15.934875838 +0000 UTC