文章目录

  • 前言
  • 一、使用步骤
    • 代码:
    • 头文件:

前言

显示800*480像素的bmp图片(使用内存映射)


一、使用步骤

代码:

代码如下:

#include "project.h"//定义一个存放触摸屏信息的结构体
struct input_event touch;
//封装两个函数一个显示图片、一个触摸屏int Display_Bmp(int coos,char * pic_path)
{int bmpfd;int lcdfd;int i,j,k;int x,y;//定义数组存放读取到的RGB数值unsigned char bmpbuf[800*480*3];  //char每个数据占1个字节//定义int数组存放转换得到的ARGB数据unsigned int lcdbuf[800*480]; //int每个数据占4个字节unsigned int tempbuf[800*480]; //int每个数据占4个字节bmpfd=open(pic_path,O_RDWR);lcdfd=open("/dev/fb0",O_RDWR);//映射得到lcd的首地址unsigned int *lcdmem=mmap(NULL,800*480*4,PROT_READ|PROT_WRITE,MAP_SHARED,lcdfd,0);lseek(bmpfd,54,SEEK_SET);read(bmpfd,bmpbuf,800*480*3);for(i=0; i<800*480; i++)lcdbuf[i]=bmpbuf[3*i]|bmpbuf[3*i+1]<<8|bmpbuf[3*i+2]<<16|0x00<<24;for(x=0; x<800; x++)      //this add{for(y=0; y<480; y++)tempbuf[(479-y)*800+x]=lcdbuf[y*800+x];}for(i=0; i<800*480; i++)*(lcdmem+i)=tempbuf[i];  /*直接把ARGB数值往地址里面存放即可,效率最高*//*for(k=0; k<467; k+=3)//特殊动画“圆形扩散”效果算法{for(i=0; i<480; i++){for(j=0; j<800; j++){if((j-400)*(j-400)+(i-240)*(i-240) <= k*k){*(lcdmem+800*i+j)=tempbuf[800*i+j];                 }}}} */close(bmpfd);close(lcdfd);//解除映射munmap(lcdmem,800*480*4);return 0;
}

头文件:

#include “project.h”:

#ifndef _PROJECT_H_
#define _PROJECT_H_#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdbool.h>
#include <sys/mman.h>
#include <linux/input.h>
#include <errno.h>
#include <dirent.h>int Display_Bmp(int coos,char * pic_path);#endif

800*480bmp图片显示相关推荐

  1. JS控制图片显示的大小(图片等比例缩放)

    <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...

  2. 入门话题1. 在Web中控制图的显示外观?把一张500*800 的图, 显示成180*110 的小图....

    问题: 在web中,如何把一张500*800 的图, 显示成180*110 的小图? 方法:  a.  利用脚本控制. 在onload 里加个函数.  1<img src ="Imag ...

  3. 5.pygame图片显示

    前言: 因为我们这一节课要学习和图片有关的,我就先给出示例图片了 bird.png 我们这一节课要学习图片显示及操作,在正式学习之前我们还要搭建程序框架 #导入模块 import pygame imp ...

  4. 音频电平vu显示表软件下载_正点原子开拓者 Nios II资料连载第十章MCU TFT-LCD图片显示实验...

    1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者 Nios II开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://w ...

  5. bmp图片显示(任意位置任意大小)

    文章目录 前言 图片显示 1.普通全屏(800*480)显示bmp 2.在任意位置显示任意大小bmp图片 头文件 前言 Linux系统,GEC6818,800*480,bmp图片 图片显示 由文件IO ...

  6. JavaFX实现图片显示,文本输入,表格显示

    测试开发了一个javaFx写的支持文本输入,pdf文件转成图片显示,可以进行图标显示的demo,其中用Eclipse实现,代码结构如下图所示: Main.java代码如下所示: package app ...

  7. 粤嵌gec6818LED屏幕上画图 太极图 图片显示 电子相册 2048小游戏 实现识别触摸坐标的识别 电子自助点餐设计等项目

    交叉开发     在一个有编辑/编译功能的PC机上进行编辑/编译,生成的可执行文件通过     交叉开发工具下载到目标机(GEC-6818)          开发板 --- Linux内核 --- ...

  8. java swing awt绘制一个图片查看器 图片显示 图片控件

    感谢 java图片查看器 的代码 java似乎没有一个名字叫图片控件的 控件,使用swing 的Label显示图片 他的代码如下: package swing.draw; import java.aw ...

  9. 4.1 ucGUI 图片显示方法

    图片显示步骤 1.运行uC-GUI-BitmapConvert.exe,打开图片file->open. 该文件在ucgui3.98\Micrium\Software\uC-GUI\Tool 目录 ...

  10. labview实现简单的图片显示

    labview实现简单的图片显示 标签(空格分隔): labview 笔记 图片处理 按说这并不是什么复杂的问题,但鉴于网上除了官方的帮助外很少有资料,而且我认为又是入门的非常好的例子,故按自己的学习 ...

最新文章

  1. 组策略 从入门到精通 (一) 组策略的还原与备份和汇入
  2. javascript onsubmit返回false仍然能提交_JavaScript对象-Get和Put
  3. Algorithms_基础数据结构(02)_线性表之链表_单向链表
  4. 3- 快速上手Linux玩转典型应用- Linux准备工作
  5. 半监督学习【机器学习】
  6. 毕业准备:外企面试--基本涵盖了所有问题【附带有答案版本】
  7. 把word地址做链接在线打开word
  8. 光栅衍射C语言程序,基于matcom的光栅衍射仿真程序
  9. -bash: vim: command not found 两种解决方法
  10. mysql十三期_《叶问》第13期
  11. MLP手写数字识别实现
  12. 完整方法:摄像头打不开,驱动无法安装成功,设备状态显示由于其配置信息(注册表中的)不完整或已损坏,windows无法启动这个硬件设备。(代码19)
  13. 网课搜题公众号制作方法
  14. ug12无法连接服务器系统,NX许可证错误:无法连接至许可证服务器系统。SPLM_LICENSE_SERVER错误[-15]...
  15. 百度地图绘制自定义区域
  16. Github清除历史记录的方法
  17. r7 6700g核显相当于什么显卡 锐龙r76700g性能怎么样
  18. Hello hello ~
  19. 网上咋打印?网上打印资料文件的平台有哪些
  20. Android-O wifi PNO扫描流程

热门文章

  1. c语言头文件写法,C语言头文件正确写法
  2. 表贴电阻尺寸与什么有关_贴片电阻常见的规格封装和尺寸
  3. 如何转换视频格式?推荐这3款视频格式转换工具
  4. 互联网晚报 | 06月03日 星期五 | 步步高回应“即将倒闭”传闻、爱彼迎启动房东/房源迁移计划;抖音宣布与中超联赛达成合作...
  5. 粒子滤波算法理解及实现
  6. 对 粒子滤波算法原理 的介绍,通俗易懂
  7. 海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
  8. 郝斌 mysql_郝斌–SQL Server2005学习笔记
  9. 使用Advanced Installer打包安装程序
  10. 【基于SpringBoot的企业人事管理系统】