#png #调色板 #8位 #文件格式 #命令行工具 #命令行颜色 #rgb

程序 rgba8888-to-rgb332

这是一个命令行工具,它会处理输入文件夹中找到的所有文件,将它们从包含完整1600万色PNG文件的文件格式转换为8位原始数据文件。

1个不稳定版本

0.1.0 2023年8月19日

#1814解析实现

MIT许可证

14KB
222

RGBA8888 到 RGB332

rgba8888-to-rgb332是一个命令行工具,它会处理输入文件夹中找到的所有文件,将它们从包含完整1600万色PNG文件的文件格式转换为8位原始数据文件。这通过使用限制性调色板来完成。透明像素可以用指定颜色替换。

目的

RGB332原始文件输出对于开发使用嵌入式图形的软件很有用,8位调色板可以大幅减少内存使用并符合某些显示要求。

提供了可选的颜色掩码功能,允许用户在将像素复制到缓冲区时选择一个要跳过的像素颜色。例如,如果选择了颜色0b111_000_11(十六进制#ff00ff或#ff00ffff带有透明通道),则在开发期间简单地将该像素颜色添加到分支语句中,并省略将其绘制到屏幕上的操作。这使用户能够实现自己的透明度。

示例用法 & 工作流程

  1. 审查RGB332调色板,您的精灵必须严格遵循这些颜色。
    1. 如果您想使用透明度,您需要从调色板中选择一种颜色作为MASK_COLOR保留。
    2. 您可以使用完全透明的像素,RGBA8888到RGB332可以进行替换
  2. 使用RGBA 8888格式(标准24/32位PNG)创建或导出您的精灵
  3. 将所有精灵放置在一个单独的文件夹中
  4. 执行rgba8888-to-rgb332 -i <your_sprite_folder> -o <your_output_folder>
    1. 如果您的精灵使用了透明像素,您必须使用-m <mask_color>参数
    2. 掩码颜色必须以格式0b000000000b000_000_00表示,以在r_g_b通道之间进行视觉分隔
  5. 原始.data文件可以在指定的输出文件夹中找到

调色板

用于将RGBA8888映射到RGB332的调色板遵循严格规则。为了简单起见,它将使用8字符十六进制颜色代码规则进行描述。

红色通道

#00______ no red
#24______
#49______
#6d______
#92______
#b6______
#db______
#ff______ full red

绿色通道

#__00____ no green
#__24____
#__49____
#__6d____
#__92____
#__b6____
#__db____
#__ff____ full green

蓝通道

#____00__ no blue
#____55__
#____aa__
#____ff__ full blue

透明通道

#______00 a fully transparent pixel
#______ff a fully opaque pixel

注意:当透明通道为00时,像素的前3个字节将被忽略。

调色板参考

An image containing 1 pixel per color in the RGB332 palette

依赖关系

~12MB
~79K SLoC