这是用于复制识别。
我可以将图像转换为8bpp位图,但由于它是索引像素格式,我不知道如何将其调整得更小。反正有没有把它改成更高的像素格式(会引入更多不需要的颜色)?
由于
答案 0 :(得分:1)
这是2D计算机图形学中的常见问题。需要提出的整体问题是您想要完成的任务。是吗:
例如,当我设计在8bpp显示器上运行的2D游戏时,我要求艺术家以全分辨率生成24位颜色的所有原始源图像。然后,我创建了一个工作流程,一次统一了他们的调色板,所以他们都使用了优化的调色板,并尽可能准确地表示。如果是这种情况,我建议您返回原始源图像并将其重新转换为较小的尺寸。
有时,我正在进行一次性实验,或者即时使用艺术品,我不关心确保所有图像都使用相同的调色板。在这种情况下,我会将图像转换为内存中的24bpp,使用双三次插值(这是一种高质量的大小调整算法)调整大小,然后将其重新转换回8bpp。缺点是这样做会为调整大小的图像生成一个新的独特调色板。
但是如果你真的想在不改变调色板的情况下调整图像大小而不在内部转换为24bpp,你必须使用两个非常糟糕的选择之一:你可以使用抖动来尝试根据大小选择最佳颜色地图 - 一个棘手的过程,包括仔细跟踪颜色错误 - 或者你可以简单地删除扫描线,直到图像匹配你想要的正确尺寸。
作为参考,像Neo Geo这样的传统2D控制台遵循“线下降”方法,这导致它们今天的古怪和锯齿状图形外观。现代控制台总是以16位,24位或32位颜色重新采样图像,有时甚至使用浮点来表示颜色值。
答案 1 :(得分:0)
通常,缩小图片时,会对颜色进行某种插值。想象一下,你有一个2x2图片,前两个像素是黑色,底部2是白色。你想将它缩小为1x2图片。两个像素将是黑色和白色的混合,灰色。
BB --> GG
WW
其中G =灰色(50%黑色,50%白色),B =黑色,W =白色。
但是,最终图像中的灰色不会出现在原始图像中。对于索引图像,这是一个问题。
您可以选择其中一个像素(随机或使用某种算法):
BB --> BW
WW
或插值,然后选择索引中最接近插值结果的颜色。所以也许你的索引中没有50%的灰色,但你确实有40%的灰色。这将非常接近,所以你可以选择它。如果没有足够接近的颜色,您可以回到第一种方法。
第三,您可以转换为普通位图,调整大小,然后转换回索引,但根据您的问题,您似乎想要避免这种情况。