昨天又下了点功夫弄了个在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

gnu-ucos 增加 bmp 位图显示的更多相关文章

  1. vc 加载bmp位图并显示的方法

    方法一.显示位图文件 HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,_T(“xxx.bmp”),Image_Bitmap,0,0,Lr_CreateDibSectio ...

  2. (学习笔记3)BMP位图的读取与显示

    在(学习笔记2)中.我们已经具体说明怎样去创建MFC.在这节中.主要解决BMP位图照片的读取和显示问题. 我们新建一个projectdemo1.创建步骤请看(学习笔记2)中具体说明. 创建成功后,例如 ...

  3. 远程控制编写之屏幕传输 MFC实现 屏幕截图 发送bmp数据 显示bmp图像

    远程控制编写之屏幕传输  MFC实现  屏幕截图 发送bmp数据 显示bmp图像: 一 : 首先要了解bmp图像的结构 详情请看我转载的一篇文章http://blog.csdn.net/hnust_x ...

  4. 将文件内容隐藏在bmp位图中

    首先要实现这个功能,你必须知道bmp位图文件的格式,这里我就不多说了,请看:http://www.cnblogs.com/xiehy/archive/2011/06/07/2074405.html 接 ...

  5. 浅析BMP位图文件结构(含Demo)

    浅析BMP位图文件结构(含Demo) 作者:一点一滴的Beer http://beer.cnblogs.com/   关于BMP位图格式在网上可以找到比较详细的相关文档,有兴趣的可以搜索标题为“BMP ...

  6. 如何将打印内容转换为bmp位图文件

    bmp是一种与硬件设备无关的图像文件格式,使用非常广.它采用位映射存储格式,除了图像深度可选以外,不采用其他任何压缩,因此,BblP文件所占用的空间很大.BMP文件的图像深度可选lbit.4bit.8 ...

  7. BMP位图图像格式简介

    1. 文件结构 位图文件可看成由4个部分组成:位图文件头(bitmap-fileheader).位图信息头(bitmap-informationheader).彩色表(colortable)和定义位图 ...

  8. VC++实现位图显示透明效果--实现原理

    我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并将透明位图在一个对话框中显示 ...

  9. C语言实现将彩色BMP位图转化为二值图

    CTF做了图片的隐写题,还没有形成系统的认识,先来总结一下BMP图的组成,并通过将彩色图转为二值图的例子加深下理解. 只写了位图二进制文件的格式和代码实现,至于诸如RGB色彩和调色板是什么的一些概念就 ...

随机推荐

  1. ABAQUS学习记录1——用户子程序综述

    概述 ABAQUS提供了相当丰富的单元类型,材料属性等数据库可供用户选择,但是工程问题是千变万化的,为了满足用户的特殊工程要求,ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBR ...

  2. webpack之source map

    先来一个webpack小例子,项目结构如下: // greeter.js module.exports = function() { var greet = document.createElemen ...

  3. pwnable flag之write up

    Papa brought me a packed present! let's open it. Download : http://pwnable.kr/bin/flag This is rever ...

  4. 3.3.2 使用 cut 选定字段

        cut 命令是用来剪下文本文件里的数据,文本文件可以是字段类型或是字符类型.后一种数据类型在遇到需要从文件里剪下特定的列时,特别方便.请注意:一个制表字符在此被视为单个字符.          ...

  5. python022 Python3 面向对象

    Python3 面向对象 Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以前没有接触 ...

  6. python018 Python3 输入和输出

    Python3 输入和输出在前面几个章节中,我们其实已经接触了 Python 的输入输出的功能.本章节我们将具体介绍 Python 的输入输出. 输出格式美化Python两种输出值的方式: 表达式语句 ...

  7. [Docker]容器镜像

     1.rootfs的基础知识 Mount namespaces 隔离的是文件系统挂接点,它使每个容器能看到不同的文件系统层次结构,即每当创建一个新容器时,希望容器进程看到的文件系统时一个独立的隔离环境 ...

  8. UML的关联(Association), 聚合(Aggregation), 组合(Composition)区别

    转载:http://blog.csdn.net/ocean181/article/details/6117369 UML的关联(Association), 聚合(Aggregation), 组合(Co ...

  9. [NOIP2002] 提高组 洛谷P1034 矩形覆盖

    题目描述 在平面上有 n 个点(n <= 50),每个点用一对整数坐标表示.例如:当 n=4 时,4个点的坐标分另为:p1(1,1),p2(2,2),p3(3,6),P4(0,7),见图一. 这 ...

  10. msp430项目编程25

    msp430中项目---带有断电保护的电子密码锁 1.I2C工作原理 2.I2C通信协议 3.代码(显示部分) 4.代码(功能实现) 5.项目总结 msp430项目编程 msp430入门学习