• 大小: 451KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-25
  • 语言: 其他
  • 标签: arm  

资源简介

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-framebuffer\
     目录           0  2017-12-22 07:36  picture-framebuffer\jpeg\
     文件       19160  2017-12-20 01:04  picture-framebuffer\jpeg\a.out
     文件       58589  2017-12-20 00:52  picture-framebuffer\jpeg\baby.jpg
     文件       19160  2017-12-20 00:51  picture-framebuffer\jpeg\x86jpegtest
     文件          64  2017-12-15 06:05  picture-framebuffer\jpeg\build.sh
     文件        7569  2017-12-15 07:05  picture-framebuffer\jpeg\pic.c
     文件       20720  2017-11-02 09:33  picture-framebuffer\jpeg\test
     文件         523  2017-11-10 01:08  picture-framebuffer\jpeg\pic_config.h
     文件        6713  2017-12-12 02:32  picture-framebuffer\jpeg\pic_config.c
     文件         786  2017-12-12 02:38  picture-framebuffer\jpeg\pic.h
     文件       49286  2017-09-25 00:49  picture-framebuffer\jpeg\jpeglib.h
     文件       14925  2017-09-23 09:36  picture-framebuffer\jpeg\jmorecfg.h
     文件       14580  2017-09-23 09:36  picture-framebuffer\jpeg\jerror.h
     文件        1757  2017-09-23 09:36  picture-framebuffer\jpeg\jconfig.h
     文件          31  2017-11-02 09:29  picture-framebuffer\jpeg\a.txt
     目录           0  2017-12-20 01:12  picture-framebuffer\bmp\
     文件        3807  2017-12-20 01:12  picture-framebuffer\bmp\bmp.c
     文件     1152054  2017-12-11 06:32  picture-framebuffer\bmp\test.bmp
     文件          54  2017-12-11 06:31  picture-framebuffer\bmp\build.sh
     文件         828  2017-12-11 07:20  picture-framebuffer\bmp\bmp.h
     文件       13864  2017-12-20 01:12  picture-framebuffer\bmp\a.out
     文件        4083  2017-12-11 07:00  picture-framebuffer\bmp\bmptest.c
     目录           0  2017-12-16 09:19  picture-framebuffer\png\
     文件        5839  2017-12-16 09:06  picture-framebuffer\png\png.c
     文件          63  2017-12-11 02:19  picture-framebuffer\png\build.sh
     文件       96239  2017-11-21 07:29  picture-framebuffer\png\zlib.h
     文件        7564  2017-12-09 07:58  picture-framebuffer\png\pnglibconf.h
     文件       22845  2017-12-09 07:58  picture-framebuffer\png\pngconf.h
     文件       16262  2017-11-21 07:29  picture-framebuffer\png\zconf.h
     文件      144149  2017-12-09 07:58  picture-framebuffer\png\png.h
............此处省略3个文件信息

评论

共有 条评论