|
本帖最后由 raominping 于 2012-3-16 20:09 编辑
续上一篇帖子:http://www.armbbs.net/forum.php?mod=viewthread&tid=10972
15.关于配色的问题。当前主流工具都只支持24位色的配色。那么我们用的是16位的。配色就麻烦多了。怎么解决呢?其实很简单,就是一个比例的问题。举个例子:24位RGB(24,100,120) 配色比例是(24/255,100/255,120/255)
16位要有同样的颜色,怎么办,配色比例也要相同。将(24/255,100/255,120/255)分子分母同除8,中间的除4.那么结果是
(3/32,25/64,15/32)。那么由此可以看出。转换成16位后,RGB为RGB(3,25,15);
怎么在程序中体现呢?那就是移位了。比如:Lcd_ClearScr((24>>3)|(100>>2)|(120>>3));那么就将24位色转换成16位色的数据了。 |
注意:因为移位会丢失数据。所以颜色有可能有偏差。如果要减小偏差,最好办法是用除法。
16、关于图片放大和缩小的问题。
其实在裸奔中可以实现图片的任意放大和缩小。我现在在实习,没网。也没时间写代码(有空我会放上来的。敬请关注)。我给大家讲下原理。大家都会懂的。
放大;
图片是一个个像素点组成的。那么要放大怎么办呢?就是把一个点放大成4个相同的点。那么图片就放大了四倍。只要显示某些部分就可以实现放大。比如图片是x.那么你在原来X的位置放四个X,那么整个图片都放大了。
缩小。更简单了。只要在图片数组中相隔一定距离取数据,那么图片就缩小了。我记得那个显示图片的循环是++。那么你可以写成i=i+2;那么图片就缩小了一半哦。很简单吧?
还有很多的。待续………………………………………………………………
|
|