更新时间2018-03-24 15:12:32
就是本来每张图片自带有256种颜色组成对不对,现在要把每一张图片的颜色减少为七到八种,然后把多张图片的颜色载入到一张颜色表上,这样颜色表最后还能空出几格用不上的,最终的效果就是每张图片的背景是同一种颜色,每一张图片的颜色表都一样,每一张图片的颜色表都包含所有图片的颜色,您能理解吗
因很久前编制过图标提取和图标制作程序,学习了解过这方面的知识,但掌握不深。你所需要了解的,可以参考BMP(以及ICO、GIF)的结构方面的资料。根据你的叙述,就自己所知提供一点参考吧。
1、一般图片色彩位有1位、4位、8位、16位、24位、32位,其中16位、24位、32位不需要调色板。
2、对于256种颜色(8位)的图片,现实情况下,可能用不了这么多的色彩,应该可以实现你的想法。就算色彩值占用很多,也可以通过近似色彩值来代替,以降低色彩数量,算法网上搜一下。
3、调色板中的颜色值位置是可以人为调整的,对于256色图片来说,假如是一张已存在的图片,理论上是调色板区域的值为 00 01 02 03 ..... FF ,现在更换调色板内容,如调为 00 1F AB DE ..... ,这样调整后,再对图片数据区的数值进行调整就可以了。比如原来的某个色彩值是1F,因为调色板数据调整了,所以对应的数据区数值要改为01才行。了解了这一原理,背景色的问题就好处理了,指向调色板对应的索引值即可。
4、图片处理还需要对扫描行有所了解。对于8位及以上色彩来说,一个色彩值可能占用1、2、3或4个字节,处理起来比较方便;1位、4位的,则需要按位来处理。另外,每个扫描行占用的字节数必须是4的整数倍。按位来来计算的话,必须是32的整数倍,即从左向右按位排列,不足补0(二进制)。
5、对于GIF、ICO来说,还涉及到透明背景的问题,略。
或有不妥,提供一个思路吧。
当然不可以
上一篇:这个是什么意思?我中奖了?