梦幻西游人物局部换色补完

梦幻西游人物局部换色补完

作者:leexuany(小宝)

小宝上次写文章简单介绍了梦幻西游中人物局部换色使用的方法,但由于没有具体的调色板变换算法,到头来也只是纸上谈兵。所以小宝花了几天时间跟踪梦幻的代码。

Themida真是一个强壳,不过好在“山重水复疑无路,柳暗花明又一村”,花的工夫都没有白费,算法已经弄清楚了。但算法简单的让人苦笑不得,请往下看。

假设用于变换调色板的参数矩阵是

C11 C12 C13

C21 C22 C23

C31 C32 C33

(不知道什么意思的去看上半篇http://blog.csdn.net/leexuany/archive/2008/06/02/2504913.aspx)

需要变换的颜色为RGB

变换算法如下:

R2=R*C11+G*C12+B*C13

G2=R*C21+G*C22+B*C23

B2=R*C31+G*C32+B*C33

R2=R2>>8

G2=G2>>8

B2=B2>>8

最后由于梦幻使用的是高彩565模式,所以R,G,B三个颜色分量都有自己表示的上限,R和B是0x1F,G是0x3F,如果运算得到的R2,G2,B2大于了自己的上限,则取最大值。

按照此算法我得到了变异野猪的图片,如图:

梦幻西游人物局部换色补完_第1张图片

稍后我会使用这个算法写一个梦幻西游的人物染色工具,到时候大家就不用为给动态人物上色发愁了,哈哈。

 

你可能感兴趣的:(c,算法,工具)