1个不稳定版本
0.1.0 | 2023年8月19日 |
---|
#1814 在 解析实现
14KB
222 行
RGBA8888 到 RGB332
rgba8888-to-rgb332
是一个命令行工具,它会处理输入文件夹中找到的所有文件,将它们从包含完整1600万色PNG文件的文件格式转换为8位原始数据文件。这通过使用限制性调色板来完成。透明像素可以用指定颜色替换。
目的
RGB332原始文件输出对于开发使用嵌入式图形的软件很有用,8位调色板可以大幅减少内存使用并符合某些显示要求。
提供了可选的颜色掩码功能,允许用户在将像素复制到缓冲区时选择一个要跳过的像素颜色。例如,如果选择了颜色0b111_000_11(十六进制#ff00ff或#ff00ffff带有透明通道),则在开发期间简单地将该像素颜色添加到分支语句中,并省略将其绘制到屏幕上的操作。这使用户能够实现自己的透明度。
示例用法 & 工作流程
- 审查RGB332调色板,您的精灵必须严格遵循这些颜色。
- 如果您想使用透明度,您需要从调色板中选择一种颜色作为
MASK_COLOR
保留。 - 您可以使用完全透明的像素,RGBA8888到RGB332可以进行替换
- 如果您想使用透明度,您需要从调色板中选择一种颜色作为
- 使用RGBA 8888格式(标准24/32位PNG)创建或导出您的精灵
- 将所有精灵放置在一个单独的文件夹中
- 执行
rgba8888-to-rgb332 -i <your_sprite_folder> -o <your_output_folder>
- 如果您的精灵使用了透明像素,您必须使用
-m <mask_color>
参数 - 掩码颜色必须以格式
0b00000000
或0b000_000_00
表示,以在r_g_b通道之间进行视觉分隔
- 如果您的精灵使用了透明像素,您必须使用
- 原始.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个字节将被忽略。
调色板参考
依赖关系
~12MB
~79K SLoC