3620|12

466

帖子

0

TA的资源

版主

楼主
 

彩屏半透明效果的实现 [复制链接]

 
本帖最后由 weizhongc 于 2015-2-12 11:51 编辑

之前一直觉得半透明的效果很炫,自己一直是比较喜欢UI的,哈哈,可以装装X啊。
下面是我实现的程序。
//   B  背景点的颜色
//   P  前景点的颜色
//   Alpha2 前景透明度 (0-100)
u16 Point_Mix(u16 B,u16 P,u8 Alpha2)
{
                u16  RGB_R1,RGB_G1,RGB_B1;
                u16  RGB_R2,RGB_G2,RGB_B2;
                u16  RGB_C;
        
                RGB_R2=((P>>11)&0x1F)*Alpha2/100;
                RGB_G2=((P>>5)&0x3F)*Alpha2/100;
                RGB_B2=(P&0x1F)*Alpha2/100;
        
                RGB_R1 = ((B>>11)&0x1F)*(100-Alpha2)/100;
                RGB_G1 = ((B>>5)&0x3F)*(100-Alpha2)/100;
                RGB_B1 = (B&0x1F)*(100-Alpha2)/100;
               
                RGB_C = ((RGB_R1+RGB_R2)<<11)+((RGB_G1+RGB_G2)<<5)+(RGB_B1+RGB_B2);
         
                return RGB_C;
}
现在不用多少内存了,你只要在画点前,先读取,然后再进行混合,再写入就好了。

/****************************************************************************
* 名    称:void ili9320_SetPoint(u16 x,u16 y,u16 point)
* 功    能:在指定座标画点
* 入口参数:x      行座标
*           y      列座标
*           point  点的颜色
* 出口参数:无
* 说    明:
* 调用方法:ili9320_SetPoint(10,10,0x0fe0);
****************************************************************************/
void ili9320_SetPoint(u16 x,u16 y,u16 point)
{
        u16 B,C;
  if ( (x>320)||(y>240) ) return;
        if(Point_Alpha==100)
        {
                ili9320_SetCursor(x,y);
                LCD_WriteRAM_Prepare();
                LCD_WriteRAM(point);
        }
        else
        {
                B=ili9320_GetPoint(x,y);           //先读点
                C=Point_Fix(B,point,Point_Alpha);  //混合
                ili9320_SetCursor(x,y);            //设置坐标点
                LCD_WriteRAM_Prepare();   
                LCD_WriteRAM(C);                   //写入
       }
}
主程序里面的实现方法

                  Point_Alpha=50;
                  GUI_Circle(100,150,40,Red,1);
                  Point_Alpha=80;
                  GUI_Circle(140,150,40,Yellow,1);
                  Point_Alpha=50;
                  GUI_Circle(180,150,40,Black,1);
记得要是现实时,最底层的画点调用上面的函数即可。我因为用的是神舟3开发板,没单独整理个工程出来。所以我就没上传程序了
下面是我的效果图









此帖出自单片机论坛

最新回复

支持一下楼主!  详情 回复 发表于 2015-3-14 16:30

赞赏

4

查看全部赞赏

点赞 关注(4)
 

回复
举报

1412

帖子

15

TA的资源

版主

沙发
 
支持
此帖出自单片机论坛
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 

回复

1147

帖子

17

TA的资源

纯净的硅(高级)

板凳
 
不错,不过这样弄两幅图片的话估计计算会很慢,算法要好好优化下,
此帖出自单片机论坛

点评

怎么优化,差别就在开辟内存空间的话,背景点的数据从ram,另外一个是直接从lcd读取点的数据。 因为程序都好简单了 就加减乘除啊。除非那一段混合的用汇编来写咯  详情 回复 发表于 2015-2-12 13:40
 
 
 

回复

466

帖子

0

TA的资源

版主

4
 
fxyc87 发表于 2015-2-12 13:00
不错,不过这样弄两幅图片的话估计计算会很慢,算法要好好优化下,



怎么优化,差别就在开辟内存空间的话,背景点的数据从ram,另外一个是直接从lcd读取点的数据。
因为程序都好简单了 就加减乘除啊。除非那一段混合的用汇编来写咯
此帖出自单片机论坛
 
 
 

回复

1078

帖子

2

TA的资源

五彩晶圆(中级)

5
 
LZ弄的不错~~~  
此帖出自单片机论坛
 
 
 

回复

4996

帖子

19

TA的资源

裸片初长成(初级)

6
 
效果不错,应该是读取要写入的地方与要写入的数据进行运算后写入,用单片机会不会速度很慢。。。。。。。。。。。。
此帖出自单片机论坛

点评

恩,不过用stm32 感觉还行了。因为你不会刷得很频繁啊,如果只是几个简单的按键很快的  详情 回复 发表于 2015-2-12 15:31
 
个人签名我的博客
 
 

回复

466

帖子

0

TA的资源

版主

7
 
zhaojun_xf 发表于 2015-2-12 15:18
效果不错,应该是读取要写入的地方与要写入的数据进行运算后写入,用单片机会不会速度很慢。。。。。。。。。。。。


恩,不过用stm32 感觉还行了。因为你不会刷得很频繁啊,如果只是几个简单的按键很快的

此帖出自单片机论坛
 
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

8
 
做得很好。
LCD控制时,加上读屏里的数据,控制会更灵活。
此帖出自单片机论坛
 
 
 

回复

3415

帖子

0

TA的资源

纯净的硅(高级)

9
 
很不错的效果啊
此帖出自单片机论坛
 
个人签名

So TM what......?

 

 

回复

551

帖子

181

TA的资源

纯净的硅(初级)

10
 
很不错的
此帖出自单片机论坛
 
 
 

回复

551

帖子

181

TA的资源

纯净的硅(初级)

11
 
很不错的!
此帖出自单片机论坛
 
 
 

回复

793

帖子

8

TA的资源

纯净的硅(中级)

12
 
支持一下楼主!
此帖出自单片机论坛

点评

谢谢  详情 回复 发表于 2015-3-16 13:52
 
 
 

回复

466

帖子

0

TA的资源

版主

13
 



谢谢
此帖出自单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
立即报名 | 2025 瑞萨电子工业以太网技术日即将开启!
3月-4月 深圳、广州、北京、苏州、西安、上海 走进全国6城
2025瑞萨电子工业以太网技术巡回沙龙聚焦工业4.0核心需求,为工程师与企业决策者提供实时通信技术最佳解决方案。
预报从速,好礼等您拿~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表