资源简介
arm下图片显示,jpeg,bmp,png三种图片
libjpeg 解析jpeg
libpng 解析png
可以通过framebuffer显示

代码片段和文件信息
#include
#include
#include
#include
#include “../framebuffer/fb.h“
#include “./bmp.h“
#define FB_DEV “/dev/fb0“
unsigned char *fbaddr;
int main(int argcchar **argv)
{
int fbdev;
char *fb_device;
unsigned char *fbmem;
unsigned int screensize;
unsigned int fb_width;
unsigned int fb_height;
unsigned int fb_depth;
if(argc < 2)
{
printf(“useage : need picture path\n“);
return 0;
}
/*open framebuffer device*/
if ((fb_device = getenv(“frameBUFFER“)) == NULL)
fb_device = FB_DEV;
fbdev = fb_open(fb_device);
/* get status of framebuffer device*/
fb_stat(fbdev &fb_width &fb_height &fb_depth);
/* map framebuffer device to shared memory*/
screensize = fb_width * fb_height * fb_depth / 8;
fbmem = fb_mmap(fbdev screensize);
fbaddr = fbmem;
printf(“begin to decode the png file-----------\n“);
load_bmp_image(argv[1]fb_widthfb_height1280);
fb_munmap(fbaddrscreensize);
fb_close(fbdev);
return (0);
return 0;
}
int load_bmp_image(char* filepathint fb_wint fb_hint p_xint p_y)
{
int fd ;
int row col ;
int color;
char *p = NULL ;
int ret ;
struct bmp_header header ;
char *buffer;
fd = open(filepath O_RDONLY);
if(-1 == fd)
{
perror(“open bmp file fail“);
return -2 ;
}
//读出bmp文件头的数据
ret = read(fd &header sizeof(struct bmp_header));
if(ret == 0)
{
printf(“%s:read the bmp header error\n“__func__);
close(fd);
return -1;
}
printf_bmp_header(header);
buffer = (char*)malloc(sizeof(char)*(header.ImageSize));
if(buffer == NULL)
{
printf(“%s:malloc the buffer error \n“__func__);
close(fd);
return -1;
}
ret = read(fd buffer header.ImageSize);
if(ret == 0)
{
printf(“%s:read the bmp header error\n“__func__);
close(fd);
return -1;
}
close(fd);
for(row = header.ImageHight -1 ; row >= 0 ; row--)
{
for(col = 0 ; col < header.ImageWidth ; col++)
{
p =( buffer+(row*header.ImageWidth + col)*3);
color = RGB888toRGBT((unsigned char)(*(p+2))
(unsigned char)(*(p+1))
(unsigned char )(*(p)));
fb_pixel(fbaddrfb_wfb_hcol+p_xheader.ImageHight-row-1+p_ycolor);
}
}
return 0 ;
}
void printf_bmp_header(struct bmp_header header )
{
//以下是bmp图的相关数据
printf(“ Signatue[0] : %c \n “ header.Signatue[0] );
printf(“ Signatue[1] : %c \n “ header.Signatue[1] );
printf(“ FileSize : %d \n “ header.FileSize );
printf(“ Reserv1 : %d \n “ header.Reserv1 );
printf(“ Reserv2 : %d \n “ header.Reserv2 );
printf(“ FileOffset : %d \n “ heade
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-12-22 09:29 picture-fr
目录 0 2017-12-22 07:36 picture-fr
文件 19160 2017-12-20 01:04 picture-fr
文件 58589 2017-12-20 00:52 picture-fr
文件 19160 2017-12-20 00:51 picture-fr
文件 64 2017-12-15 06:05 picture-fr
文件 7569 2017-12-15 07:05 picture-fr
文件 20720 2017-11-02 09:33 picture-fr
文件 523 2017-11-10 01:08 picture-fr
文件 6713 2017-12-12 02:32 picture-fr
文件 786 2017-12-12 02:38 picture-fr
文件 49286 2017-09-25 00:49 picture-fr
文件 14925 2017-09-23 09:36 picture-fr
文件 14580 2017-09-23 09:36 picture-fr
文件 1757 2017-09-23 09:36 picture-fr
文件 31 2017-11-02 09:29 picture-fr
目录 0 2017-12-20 01:12 picture-fr
文件 3807 2017-12-20 01:12 picture-fr
文件 1152054 2017-12-11 06:32 picture-fr
文件 54 2017-12-11 06:31 picture-fr
文件 828 2017-12-11 07:20 picture-fr
文件 13864 2017-12-20 01:12 picture-fr
文件 4083 2017-12-11 07:00 picture-fr
目录 0 2017-12-16 09:19 picture-fr
文件 5839 2017-12-16 09:06 picture-fr
文件 63 2017-12-11 02:19 picture-fr
文件 96239 2017-11-21 07:29 picture-fr
文件 7564 2017-12-09 07:58 picture-fr
文件 22845 2017-12-09 07:58 picture-fr
文件 16262 2017-11-21 07:29 picture-fr
文件 144149 2017-12-09 07:58 picture-fr
............此处省略3个文件信息
- 上一篇:httpclient4.3 封装工具类
- 下一篇:加密狗最新驱动含win10
相关资源
- IAR For ARM 7.3最新注册机
- 郭天祥ARM9视频教程
- IAR ARM 7.8破解
- IAR For ARM V5.5 注册机
- IAR for ARM 7.40 破解
- IAR For ARM 7.4 破解
- arm触摸屏与LCD校准程序三点校准法
- ARM嵌入式项目实战
- 基于ARM蓝牙传输源程序
- USB 驱动 让电脑与arm进行通信
- arm flash 烧写程序源码
- 基于LW IP的嵌入式串口服务器的设计与
- Studies In Vitro and In Vivo of Pharmacologica
- Research on pharmacological effects of lycorin
- ARM64 完整指令集,学习必备
- WINCC报表(OLE-DB Tag and Alarm Export_V8.x
- ARM9指令cache的verilog代码
- 基于ARM7处理器的CAN总线网络设计
- 基于ARM和GPRS的无线通信系统设计
- 关于proteus仿真arm7出现错误的问题
- 基于ARM7的LCD显示电压示波系统的设计
- 基于ARM7和DSP的逆变电源设计电路
- 基于ARM开发板的车辆检测系统控制单
- ARM7TDMI-S在嵌入式系统中的Bootloader代码
- ARM汇编指令集PDF
- 基于ARM7 PWM定时器的图像传感器时序信
- 基于ARM7的分布式远程测控系统设计
- LPC2100系列ARM7微控制器加密ARM芯片
- ARM7内核的中断屏蔽方法
- 基于ARM7TDMI微处理器的矿用电子皮带秤
评论
共有 条评论