北京市海淀区西三环北路甲2号院7号楼10-14层 17368709370 k8com@j9.com

公司新闻

有限调色板中怎样给像素选一个最接近的颜色:五色调色板的十次像素映射·实例03

2026-11-03

像素图使用少量固定颜色时,需要把输入色映射到某个调色板项。最接近必须先有明确的距离定义,同分也需要稳定规则,否则不同位置或重复处理可能得到不一致的编号。

下面把一个游戏界面或模拟规则拆成可复查的记录。每组输入独立给出,先确认单位、先后次序和边界,再核对结果。它不依赖具体游戏的隐藏参数,读者可以直接挑选几步手工复算。

输入与规则

五种调色板颜色和十个输入色都使用三个零到十五的整数通道。距离定义为三通道差的平方和,不开平方;选择距离最小的调色板编号,同分取较小编号。这里只作数值练习,不改变调色板本身。

调色板编号零到四[[0, 12, 3], [9, 4, 7], [11, 3, 5], [0, 4, 12], [6, 5, 5]] 十个输入色[[0, 4, 12], [1, 7, 2], [11, 12, 9], [2, 1, 1], [9, 11, 9], [2, 14, 6], [12, 10, 0], [10, 0, 3], [5, 2, 0], [12, 3, 13]]

逐步记录

输入色[0, 4, 12],对五个调色板项的距离平方依次[145, 106, 171, 0, 86],选编号3,输出色[0, 4, 12]。最小距离0,只用数值比较,不把编号大小当成亮度。

输入色[1, 7, 2],对五个调色板项的距离平方依次[27, 98, 125, 110, 38],选编号0,输出色[0, 12, 3]。最小距离27,只用数值比较,不把编号大小当成亮度。

输入色[11, 12, 9],对五个调色板项的距离平方依次[157, 72, 97, 194, 90],选编号1,输出色[9, 4, 7]。最小距离72,只用数值比较,不把编号大小当成亮度。

输入色[2, 1, 1],对五个调色板项的距离平方依次[129, 94, 101, 134, 48],选编号4,输出色[6, 5, 5]。最小距离48,只用数值比较,不把编号大小当成亮度。

输入色[9, 11, 9],对五个调色板项的距离平方依次[118, 53, 84, 139, 61],选编号1,输出色[9, 4, 7]。最小距离53,只用数值比较,不把编号大小当成亮度。

输入色[2, 14, 6],对五个调色板项的距离平方依次[17, 150, 203, 140, 98],选编号0,输出色[0, 12, 3]。最小距离17,只用数值比较,不把编号大小当成亮度。

输入色[12, 10, 0],对五个调色板项的距离平方依次[157, 94, 75, 324, 86],选编号2,输出色[11, 3, 5]。最小距离75,只用数值比较,不把编号大小当成亮度。

输入色[10, 0, 3],对五个调色板项的距离平方依次[244, 33, 14, 197, 45],选编号2,输出色[11, 3, 5]。最小距离14,只用数值比较,不把编号大小当成亮度。

输入色[5, 2, 0],对五个调色板项的距离平方依次[134, 69, 62, 173, 35],选编号4,输出色[6, 5, 5]。最小距离35,只用数值比较,不把编号大小当成亮度。

输入色[12, 3, 13],对五个调色板项的距离平方依次[325, 46, 65, 146, 104],选编号1,输出色[9, 4, 7]。最小距离46,只用数值比较,不把编号大小当成亮度。

至少包含一次调色板原色输入用于核对零距离,其他映射逐候选比较,并保留稳定同分规则。

复核方法和适用范围

逐通道记录误差,再独立验证选中项没有比任何其他候选更大的总平方误差。距离也可展开为输入平方和加候选平方和减两倍内积,与直接平方差计算相互核对。

通道数值距离并不自动等于人眼感受到的色差,本例没有颜色空间校正或透明度。量化会丢失信息,多个输入可能映射到同一个颜色;结果编号相同并不说明原输入本来完全一样。

练习时可以只改动一项输入,预测从哪一步开始出现变化,再逐步比较。空状态、数值零和无法判断要分别记录;不要为了让最后结果一致而忽略中途的偏差。边界与同分约定同样属于规则,复核时应一并保留。