package core:image/qoi
Overview
Reader and writer for QOI images.
The QOI specification is at https://qoiformat.org.
Index
Constants (2)
Variables (0)
This section is empty.
Types
Error ¶
Error :: image.Error
Related Procedures With Returns
- load_from_bytes
- load_from_context
- load_from_file
- save_to_buffer
- save_to_file
- load (procedure groups)
- save (procedure groups)
Image ¶
Image :: image.Image
Related Procedures With Parameters
- destroy
- save_to_buffer
- save_to_file
- save (procedure groups)
Related Procedures With Returns
- load_from_bytes
- load_from_context
- load_from_file
- load (procedure groups)
Options ¶
Options :: image.Options
Related Procedures With Parameters
- load_from_bytes
- load_from_context
- load_from_file
- save_to_buffer
- save_to_file
- load (procedure groups)
- save (procedure groups)
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 ¶
Related Procedures With Returns
RGB_Pixel ¶
RGB_Pixel :: [3]u8
qoi_converter ¶
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
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
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
load ¶
load :: proc{ load_from_file, load_from_bytes, load_from_context, }
save ¶
save :: proc{ save_to_buffer, save_to_file, }
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