800*480bmp图片显示
文章目录
- 前言
- 一、使用步骤
- 代码:
- 头文件:
前言
显示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图片显示相关推荐
- JS控制图片显示的大小(图片等比例缩放)
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="C ...
- 入门话题1. 在Web中控制图的显示外观?把一张500*800 的图, 显示成180*110 的小图....
问题: 在web中,如何把一张500*800 的图, 显示成180*110 的小图? 方法: a. 利用脚本控制. 在onload 里加个函数. 1<img src ="Imag ...
- 5.pygame图片显示
前言: 因为我们这一节课要学习和图片有关的,我就先给出示例图片了 bird.png 我们这一节课要学习图片显示及操作,在正式学习之前我们还要搭建程序框架 #导入模块 import pygame imp ...
- 音频电平vu显示表软件下载_正点原子开拓者 Nios II资料连载第十章MCU TFT-LCD图片显示实验...
1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者 Nios II开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://w ...
- bmp图片显示(任意位置任意大小)
文章目录 前言 图片显示 1.普通全屏(800*480)显示bmp 2.在任意位置显示任意大小bmp图片 头文件 前言 Linux系统,GEC6818,800*480,bmp图片 图片显示 由文件IO ...
- JavaFX实现图片显示,文本输入,表格显示
测试开发了一个javaFx写的支持文本输入,pdf文件转成图片显示,可以进行图标显示的demo,其中用Eclipse实现,代码结构如下图所示: Main.java代码如下所示: package app ...
- 粤嵌gec6818LED屏幕上画图 太极图 图片显示 电子相册 2048小游戏 实现识别触摸坐标的识别 电子自助点餐设计等项目
交叉开发 在一个有编辑/编译功能的PC机上进行编辑/编译,生成的可执行文件通过 交叉开发工具下载到目标机(GEC-6818) 开发板 --- Linux内核 --- ...
- java swing awt绘制一个图片查看器 图片显示 图片控件
感谢 java图片查看器 的代码 java似乎没有一个名字叫图片控件的 控件,使用swing 的Label显示图片 他的代码如下: package swing.draw; import java.aw ...
- 4.1 ucGUI 图片显示方法
图片显示步骤 1.运行uC-GUI-BitmapConvert.exe,打开图片file->open. 该文件在ucgui3.98\Micrium\Software\uC-GUI\Tool 目录 ...
- labview实现简单的图片显示
labview实现简单的图片显示 标签(空格分隔): labview 笔记 图片处理 按说这并不是什么复杂的问题,但鉴于网上除了官方的帮助外很少有资料,而且我认为又是入门的非常好的例子,故按自己的学习 ...
最新文章
- 组策略 从入门到精通 (一) 组策略的还原与备份和汇入
- javascript onsubmit返回false仍然能提交_JavaScript对象-Get和Put
- Algorithms_基础数据结构(02)_线性表之链表_单向链表
- 3- 快速上手Linux玩转典型应用- Linux准备工作
- 半监督学习【机器学习】
- 毕业准备:外企面试--基本涵盖了所有问题【附带有答案版本】
- 把word地址做链接在线打开word
- 光栅衍射C语言程序,基于matcom的光栅衍射仿真程序
- -bash: vim: command not found 两种解决方法
- mysql十三期_《叶问》第13期
- MLP手写数字识别实现
- 完整方法:摄像头打不开,驱动无法安装成功,设备状态显示由于其配置信息(注册表中的)不完整或已损坏,windows无法启动这个硬件设备。(代码19)
- 网课搜题公众号制作方法
- ug12无法连接服务器系统,NX许可证错误:无法连接至许可证服务器系统。SPLM_LICENSE_SERVER错误[-15]...
- 百度地图绘制自定义区域
- Github清除历史记录的方法
- r7 6700g核显相当于什么显卡 锐龙r76700g性能怎么样
- Hello hello ~
- 网上咋打印?网上打印资料文件的平台有哪些
- Android-O wifi PNO扫描流程
热门文章
- c语言头文件写法,C语言头文件正确写法
- 表贴电阻尺寸与什么有关_贴片电阻常见的规格封装和尺寸
- 如何转换视频格式?推荐这3款视频格式转换工具
- 互联网晚报 | 06月03日 星期五 | 步步高回应“即将倒闭”传闻、爱彼迎启动房东/房源迁移计划;抖音宣布与中超联赛达成合作...
- 粒子滤波算法理解及实现
- 对 粒子滤波算法原理 的介绍,通俗易懂
- 海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
- 郝斌 mysql_郝斌–SQL Server2005学习笔记
- 使用Advanced Installer打包安装程序
- 【基于SpringBoot的企业人事管理系统】