我正在处理旧的 MS 问题并遇到了这个问题:
一张图片有一个与之关联的位图和一个 256 长的原始调色板数组。现在我们有一个更改列表,其中一些旧颜色映射到新颜色。编写代码以更改原始调色板。现在,如果必须更改原始位图,请编写将扫描图片以及更改的调色板数组的代码。代码应该是 O(N) 而不是 O(N^2)。可以更改原始调色板的结构来完成此操作。
我无法弄清楚确切的问题。如果有人可以说明问题和标准方法,那就太好了。非常感谢。
我认为这类问题应该通过与招聘人员的一些互动来解决。
我的方法如下:
for each *element* in *image data*
if *palette value* in *element* contains *old value*
update *palette value* with *new value*
end
process *element*
end
以上可能没有更新某些值(对于图像中不存在某些调色板值的情况),但我认为这是处理此问题的一种简单方法。
问候
只需根据更改列表通过替换颜色来修改调色板数组。