请问有大侠做过在tft上的透明显示算法吗,有做过的请给个思路,谢谢!!!!
rt,谢谢!! 阿尔法混合 搜本坛刘伟的大作 值1(rgb)*50%+值2(rgb)*50%猜的…… 回复【1楼】chinaye1 程序猿
阿尔法混合 搜本坛刘伟的大作
-----------------------------------------------------------------------
搜到了,谢谢。
刘伟大侠好多的帖子都不是第一次关注了,而他的代码还不知能否看懂!! 回复【2楼】hemjidn 捱多年
值1(rgb)*50%+值2(rgb)*50%
猜的……
-----------------------------------------------------------------------
我试试,谢谢!!! 楼主我是来看你的小JJ!不错厉害! 回复【5楼】shanyan
楼主我是来看你的小jj!不错厉害!
-----------------------------------------------------------------------
./emotion/em014.gif 我也打算研究下,就是一直没时间,呵呵~~ 回复【7楼】milestone2010
我也打算研究下,就是一直没时间,呵呵~~
-----------------------------------------------------------------------
小弟我昨晚实现了,待会儿上传代码,请不要拍砖!! 先上效果图:
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_698490RB0YLC.jpg
(原文件名:fsjs.jpg)
代码:点击此处下载 ourdev_698491YUND82.rar(文件大小:978字节) (原文件名:AlphaMix.rar)
望勿拍砖
这是参照刘伟大侠的大作的,原帖的地址:
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3928794&bbs_page_no=1&search_mode=3&search_text=liuweiele&bbs_id=9999 觉得这个用来做菜单的选择条还是相当不错的!! mark~ 回复【楼主位】danielmi俊俊
-----------------------------------------------------------------------
嗯,谢谢楼主的程序,我的也移植好了。
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_698744KP0424.gif
(原文件名:QQ截图20111124224258.gif)
但是我的有个问题:
/****************************************************************************
*函数名:LCD_HyalinizeDemo
*功能: 透明度演示程序,液晶里面的一个区域与fr_c颜色混合
*输入:新fr_c叠加上去的颜色值,xstart,ystar,xend,yend液晶上的一个区域,alpha 透明度
*创建时间:2011.11.23
*修改记录:
*创建人:danilemi
*说明:
*****************************************************************************/
void LCD_HyalinizeDemo(u16 fr_c,u16 xstart,u16 ystart,u16 xend,u16 yend,u8 alpha)
{
u16 i = 0,j = 0;
u16 color = 0;
u16 ExtSRAM_data_buffer; //为啥数组成员不能多过1480个,到1490就不显示了
for(i = 0;i < yend - ystart;i ++)
{
for(j = 0;j < xend - xstart;j ++)
{
ExtSRAM_data_buffer=GetPoint(j,i);
}
}
LCD_SetCursor(xstart,i + ystart);
LCD_WriteRAM_Prepare();
for(i = 0;i < yend - ystart;i ++)
{
for(j = 0;j < xend - xstart;j ++)
{
color = AlphaBlend(fr_c,ExtSRAM_data_buffer,alpha);
LCD_SetPoint(j,i,color);
}
}
}
u16 ExtSRAM_data_buffer; //为啥数组成员不能多过1480个,到1490就不显示了
也就是透明显示的只有上面的图片里显示的那么大 回复【12楼】binaimei2007兵仔
-----------------------------------------------------------------------
./emotion/em010.gif./emotion/em010.gif./emotion/em010.gif求路过的个位大侠给个提示。。。 回复【13楼】binaimei2007 兵仔
-----------------------------------------------------------------------
栈空间溢出了吧 很容易,最好有大的ram.下面是我以前的图
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_699337JXP3F5.gif
(原文件名:screen5.gif) 回复【15楼】leonliu_1128
-----------------------------------------------------------------------
你的界面很漂亮!
嗯,经过简单的修改,我的也可以实现,就是速度有点慢。。。。
http://cache.amobbs.com/bbs_upload782111/files_48/ourdev_699369YSLG3G.jpg
(原文件名:QQ截图20111126213818.jpg)
void LCD_HyalinizeDemo(u16 fr_c,u16 xstart,u16 ystart,u16 xend,u16 yend,u8 alpha)
{
u16 i = 0,j = 0;
u16 color = 0;
u16 ExtSRAM_data_buffer;
LCD_SetDisplayWindow(xstart,ystart,xend-xstart,yend-ystart);
LCD_WriteRAM_Prepare();
for(i = ystart;i < yend - ystart;i ++)
{
for(j = xstart;j < xend - xstart;j ++)
{
ExtSRAM_data_buffer=GetPoint(i,j);
color = AlphaBlend(fr_c,ExtSRAM_data_buffer,alpha);
//LCD_SetPoint(i,j,color);
LCD_WriteRAM(color);
}
}
} 回复【13楼】binaimei2007 兵仔
-----------------------------------------------------------------------
会不会是如楼上两位所说的呢??
或者不要用ExtSRAM_data_buffer【】【】来缓存了,直接color = AlphaBlend(fr_c,GetPoint(j,i),alpha); 试下!! 回复【16楼】binaimei2007 兵仔
-----------------------------------------------------------------------
晕,打完那两个字你都已经解决了,像你之前那样也就没有必要用一个数组来缓存了!! 回复【15楼】leonliu_1128
-----------------------------------------------------------------------
回复【16楼】binaimei2007 兵仔
-----------------------------------------------------------------------
抛砖引玉,引来的都是大牛!! 不错 顶了 学习 果断顶。好帖!
页:
[1]