資源簡介
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?????????{
????????????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
評論
共有 條評論