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

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

作者: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大于了自己的上限,则取最大值。

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

变异野猪

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

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值