我编写了一个 PCX 解码器(ImageIO
Java 插件),它工作得很好,除了一个细节:
我不明白是否和/或何时应该在标题中使用调色板的前两种颜色,或者只对 1 位数据使用固定的黑白调色板。
是否有一种算法或启发式方法可以确定是否应该使用调色板,或者是否应该使用标准黑白?我缺少标题中的某些设置吗?还是只是需要在解码之前提前知道这些信息?
我拥有的示例文件显示出非常不一致的行为:
我有一个无法共享的示例文件,这无关紧要:版本:0,bpp:1,平面:1,调色板信息:0 使用标题调色板很好,因为它与默认黑白相同.
示例文件,可能不应该使用调色板(但作为版本 2,也许应该?):版本:2,bpp:1,平面:1,调色板信息:0。使用调色板将使背景变为蓝色。默认黑白看起来不错。
- 我还有一个无法共享的示例文件,我知道不应使用调色板:版本:3,bpp:1,平面:1,调色板信息:0 这里调色板全黑(全 0),这使得感觉版本 3 意味着没有调色板。
- 示例文件,应使用调色板(基于手动检查颜色):版本:5,bpp:1,平面:1,调色板信息:0。使用标题调色板很好。默认黑白看起来倒置。
- 不应使用调色板的示例文件:版本:5,bpp:1,平面:1,调色板信息:0(如上一个示例)。使用调色板将使火车在黑色背景上变成白色。默认黑白看起来不错。
- 示例文件,无关紧要:版本:5,bpp:1,平面:1,调色板信息:0。使用标题调色板很好,因为它与默认黑白相同。
- 我还有一个由 Photoshop 编写的示例文件,我无法分享不应该使用调色板的地方:版本:5,bpp:1,平面:1,调色板信息:0 这里调色板只是垃圾值(15, 15,15, 14,14,14...0,0,0),使图像看起来全黑。默认黑白看起来不错。
我已经阅读了几乎所有可以在 Internet 上找到的文档,包括:
...以及一堆其他不太有用的页面,这些页面似乎没有讨论相关主题。