gnu-ucos 加入 bmp 位图显示
来源:互联网 发布:剑灵人男捏脸数据图 编辑:程序博客网 时间:2024/06/04 18:49
昨天又下了点功夫弄了个在tft屏幕上显示bmp位图的。我选择的是24位tft真彩测显示方式所以也要选择真彩色位图。网上给出的16位位图数组无法使用。在csdn上下载了2个制作工具,一个是c代码的,一个是exe二进制文件感觉都不好用。无奈修改了那个c代码的自己弄了个制作 数组的小工具。
可以从github上clone下来(因为位图是微软的格式,所以这里就用了win下面的结构体来处理了):
git@github.com:xushichao/bmptool.git
然后 就是得到320*240的bmp文件,这个可以用qq截图,在截的过程中会动态的给出分辨率。
此时一个24位真彩色bmp数组得到了(我的头文件数组中是唐雨柔的头像 ),
unsigned char bmp_data[]={0x06, 0x38, 0x60, 0x06, 0x35, 0x5d, 0x04, 0x32, 0x59, 0x02, 0x2d, 0x54, 0x00, 0x2a, 0x51, 0x00, .....0x13, 0x09, 0x0f, 0x15, 0x07, 0x0b, 0x16, 0x04, 0x08, 0x13, 0x05, 0x07, 0x12, 0x03, 0x06, 0x12, };然后就是把这个数组写到 lcd 缓冲区里面:
paint_bmp(0,0,LCD_WIDTH,LCD_HEIGHT,bmp_data);
void paint_bmp(int x0,int y0,int h,int l,unsigned char bmp[]){int x,y,k=0;U32 c;int p = 0;for( y = y0 ; y < l ; y++ ){for( x = x0 ; x< h ; x++ ){c = 0;c |= bmp[p]; c |= bmp[p+1]<<8; c |= bmp[p+2]<<16; if ( ( (x0+x) < LCD_WIDTH) && ( (y0+y) <LCD_HEIGHT) )LCD_BUFFER[y0+y][x0+x] =c;p +=3;}}}
在我的 tq2440开发板上显示的bmp位图恰好是原来的图片翻转过来了,猜测可能是制作数组或者把数组写到lcd缓冲区 过程中哪里出现了问题。
真实图片:
在我的开发板上则显示为:
具体代码可到我的github上clone。
用到的bmp位图链接:
https://www.dropbox.com/s/a3dtgsw8vyv4zz4/lcd320%20240.bmp
0 0
- gnu-ucos 加入 bmp 位图显示
- gnu ucos 加入lcd 显示
- 动态显示BMP位图
- UCOS+SPI2+fats+bmp显示
- 给gnu ucos 加入printf 支持
- 视频函数显示BMP位图
- 窗体中显示BMP位图
- 显示BMP位图文件模块
- 使用vc显示bmp位图
- 使用vc显示bmp位图
- dls显示一张BMP位图。
- 使用SDL_Surface显示BMP位图
- gnu ucos 加入nandflash 操作并支持nand启动
- BMP位图一般显示方法[网摘]
- wince任意位置显示BMP位图
- 使用16位汇编显示bmp位图
- vc加载bmp位图并显示
- VC++图片控件(Picture Control)显示资源位图(BMP)、文件位图(BMP)、其它格式文件图片(JPG\PNG\BMP)的方法
- Maven手动添加本地Jar包
- 自定义视图:视图的封装过程.
- Android,使用Json发送数据中,使用的Java转义字符 KanKan原创
- POJ 2241
- oracle 数据类型---字符型
- gnu-ucos 加入 bmp 位图显示
- 由字符串转化为Integer类型
- RF
- 剑指Offer15链表中倒数第k个结点
- iOS开-发回收键盘
- 迟到的博客
- hql关联和连接查询实例
- linux基础--开机自启动
- 设置QPushButton的背景图片(或者Window、WindowText等的背景图片/颜色)