将调色板颜色的16x16真彩色图像转换为实际调色板fi

2024-04-20 09:35:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个旧的游戏背景中查找资料。它们是8位的。我需要一个调色板让它们看起来正确。在

  • 我有调色板。DxWnd支持转储活动调色板。

  • 但是,调色板是以16x16色(=256)拉伸的对话框形式出现的。

Original output

[更新以包括实际输出]

  • 然后我把它们缩小到每种颜色的单个像素。现在我有一个16x16(真彩色)位图。在

我想从中得到一个调色板文件。我不知道是否有一个标准的调色板格式,或它只是简单的旧数据(256*3为RGB)字节。GIMP支持在导入“原始图像数据”时可以导入的调色板格式。在

所以,问题是:将这个16x16的真彩色图像转换成3x256字节的调色板最简单的方法是什么?在

无论是工具,还是Python,C/C++,或其他什么。关键是,这是一个小问题(“错误的数据格式”)。因此,如果一些现有的工具(Linux或Windows)可以使用它,那么无论如何。在

要说清楚:这不是一个精灵。它不需要被试探性地转换成某种“最适合”的调色板。简直就是调色板。在

[编辑]根据注释,我试图从GIMP和IrfanView输出调色板,但我得到的却是一组混乱的颜色:

Jumbled result after 8-bit conversion


Tags: 文件工具数据游戏字节颜色格式像素
1条回答
网友
1楼 · 发布于 2024-04-20 09:35:57

ImageMagick将提供一个256*24位的原始RGB图像,当从图像中打开原始图像时,GIMP可以将其用作调色板:

convert UEw8E.png -resize '16x16!' -filter point -depth 8 palette.rgb

!意味着强制调整大小,而不管纵横比,因为图像不是正方形。-filter point跳过小尺度过滤器。-depth 8强制每种颜色8位。虽然您的图像已经是每种颜色8位,但最好知道它将输出哪种格式。)

创建的文件palette.rgb,是一个原始数组,由图像的每种颜色8位(24位RGB)调色板组成,从左到右,从上到下。(我想这是你想要的)

现在用GIMP打开任何原始图像(用2.8.22测试),设置

  • 图像类型:索引
  • 调色板类型:R、G、B(普通)
  • 调色板文件:palette.rgb

GIMP内部的调色板如下所示(所有内容的顺序与图像中的顺序相同):
the palette inside GIMP

相关问题 更多 >