15 releases
0.4.0 | Sep 29, 2024 |
---|---|
0.2.5 | Sep 10, 2024 |
0.2.3 | Apr 16, 2024 |
0.2.2 | Mar 30, 2024 |
0.1.0 | Feb 26, 2023 |
#659 in Game dev
543 downloads per month
Used in 3 crates
(2 directly)
115KB
3K
SLoC
ICI Files
Usage
ici-files = "0.4.0"
Encodes and decodes ICI files and JASC palettes
Designed to be used with Buffer Graphics, and in turn Pixel Graphics.
ICI Tools can be useful when working with ICI files
ICI Image editor is a MSPaint like program for ICI and ICA files
Indexed Color Images come in two forms:
- Single
- Animated
Both may contain palette data in one of these forms:
- No palette data
- Palette ID (u16)
- Palette Name (String 1..=255)
- Palette Colours (RGBA 1..=255)
Palettes
No Data
The file doesn't contain any palette information. The Image
struct will default to a palette of the correct size but filled with transparency.
Use Image::with_palette
to set the palette or Image::set_color
to set a specific color.
ID
The file has a palette ID between 0..=65535. The Image
struct will default to a palette of the correct size but filled with transparency.
Use Image::with_palette
to set the palette or Image::set_color
to set a specific color.
Name
The file has a UTF-8 palette name, between 1..=255 bytes long. The Image
struct will default to a palette of the correct size but filled with transparency.
Use Image::with_palette
to set the palette or Image::set_color
to set a specific color.
Colors
The file contains a list of RGBA colors.
Image formats
Single
Single static image, max width and height is 255
Animated
Multi frame image, max width, height and frame count is 255. Also contains a frame rate as fractional seconds per frame. All frames must be the same size.
IndexedWrapper
Stores either a static or animated image and provides a limited abstract interface
Features
Default:
serde
Serde
Adds serialize and deserialize to some structs
Dependencies
~0.4–1MB
~23K SLoC