12 releases

new 0.2.3 Apr 16, 2024
0.2.2 Mar 30, 2024
0.1.7 Jan 6, 2024
0.1.4 May 29, 2023
0.1.0 Feb 26, 2023

#687 in Game dev

Download history 167/week @ 2023-12-20 23/week @ 2023-12-27 91/week @ 2024-01-03 14/week @ 2024-01-10 1/week @ 2024-02-14 12/week @ 2024-02-21 14/week @ 2024-02-28 8/week @ 2024-03-06 24/week @ 2024-03-13 164/week @ 2024-03-20 280/week @ 2024-03-27 66/week @ 2024-04-03

536 downloads per month
Used in 2 crates (via buffer-graphics-lib)

Custom license

110KB
3K SLoC

Crates.io Documentation

ICI Files

Usage

ici-files = "0.2.3"

Encodes and decodes ICI files and JASC palettes

Designed to be used with Buffer Graphics, and in turn Pixel Graphics.

Indexed Color Images come in two forms:

  1. Single
  2. Animated

All three may contain palette data in one of these forms:

  1. No palette data
  2. Palette ID (u16)
  3. Palette Name (String 1..=255)
  4. 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
~24K SLoC