求十进制数字转换为16进制的渐变算法 要手算的
发布网友
发布时间:2022-04-28 11:30
我来回答
共1个回答
热心网友
时间:2023-10-05 12:58
你个利用双线性插值的方法,我是学VB的,C的不懂,代码就不能贴了,只能说下如何运算..剩下的就要靠你自己了
1.首先计算缩放比例..bl=2/w...2是原图宽度(因为只有2个颜色)...w是放大后的宽度
2.开始循环,从1循环到目标宽度w,假设循环变量为i...就用n=i*bl
3.取出n的小数部分存到变量p中..然后合成颜色,目标色R=R1*(1-p) R2*p G=G1*(1-P) G2*p B=B1*(1-P) B2*p....R1/G1/B1是起始色的红/绿/蓝色,R2/G2/B2是结束色的红/绿/蓝色.
这个算法是什么原理呢,我说一下,算出的n=i*bl就是一个小数值.假如他是1.3,那么他靠1颜色就近些,所以1颜色对他的影响就大,所以R1*(1-p) R2*p就体现了1颜色影响的范围大,2颜色影响小..假如是1.7,那么2颜色对他的影响大,1就小....所以他呈现渐变分布..
而双线性插值一般用语图像放大缩小..