#color #palette #rgb #write #file #numbers #jasc

jascpal

读取和写入 JASC 颜色表文件

2 个版本

0.1.1 2020 年 5 月 18 日
0.1.0 2019 年 8 月 4 日

#40#palette


用于 3 个 crate (2 个直接使用)

GPL-3.0 许可证

12KB
281 代码行

JASC 颜色表文件读取器/写入器。

解析和字符串化包含任意数量颜色的颜色表文件。

JASC 颜色表文件遵循简单的格式

JASC-PAL
0100
$num_colors
$rgb...

颜色使用 rgb crate 来表示。

示例

use std::io::Cursor;
use jascpal::{Palette, PaletteIndex, Color};
let cursor = Cursor::new(b"JASC-PAL\r\n0100\r\n2\r\n0 0 0\r\n255 255 255\r\n".to_vec());
let pal = Palette::read_from(cursor).unwrap();
assert_eq!(pal[PaletteIndex::from(0)], Color { r: 0, g: 0, b: 0 });
assert_eq!(pal[PaletteIndex::from(1)], Color { r: 255, g: 255, b: 255 });
let mut pal = pal;
pal[PaletteIndex::from(1)] = Color { r: 0, g: 255, b: 255 };
pal.add(Color { r: 255, g: 0, b: 0 });
assert_eq!(
    pal.to_string(),
    "JASC-PAL\r\n0100\r\n3\r\n0 0 0\r\n0 255 255\r\n255 0 0\r\n".to_string()
);

依赖

~1.2–1.9MB
~39K SLoC