我正在用 Python 和 Pygame 编写游戏。为此,图形将采用 NES 等旧视频游戏机的风格。因此,图形由带有 2 位(4 色)图像的单个图块集文件组成,我希望能够在加载这些图像时为这些图像分配任意 4 色调色板。
我想要做的是使用 8 位(256 色)调色板模式,我将调色板分为 64 个子调色板,每个子调色板有 4 种颜色。每次我从 2 位图形文件加载一个 16x16 的图块时,我都想将这些虚拟 4 色调色板之一分配给它。因此,在原始图块集文件中,调色板索引将为 0-3,因为它是一个 2 位索引文件。我想将此文件中的图块加载到内存中,并使用一个函数将调色板索引从 0-3 重新分配给我选择的任何调色板偏移量,这样当我将它粘贴到屏幕上时,它会以我选择的 4 色着色调色板——很像 NES 硬件的工作原理。这有点难以解释,所以也许这张图片让它更清楚一点:
我查看了 Pygame 和 PIL 的手册,没有发现任何东西可以让我像这样操作调色板文件。是否有任何其他库可供研究,或者是否有我没有看到的更简单的解决方案?