把png图片资源转换为framebuffer可显示数据

本文介绍了如何将PNG图片转换为framebuffer可显示的数据。首先了解framebuffer的大小,例如1920*1080,然后查看PNG图片的尺寸和位数,如32位500x333。接着将图片转换为framebuffer格式并存储为fb0.img,最后通过`busybox dd`命令将转换后的数据写入/dev/graphics/fb0实现图片显示。
摘要由CSDN通过智能技术生成

    我们都知道,我们是通过framebuffer来显示图片的,但是我们有不能直接把png图片显示到framebuffer,因为framebuffer是不能直接识别png图片的。

    我们如何把一个1.png图片转换为framebuffer需要的格式呢?

1. 了解framebuffer的大小

# cat /sys/class/graphics/fb0/window_axis                                      
0 0 1919 1079

我们查看fb0是1920*1080的大小

 

2. 查看需要显示的图片的大小及位数

32 bit的 500 x 333 的图片

3. 把图片转换为framebuffer的格式

#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include "png.h"


static int open_png(const char* name, 
                                    png_structp* png_ptr, 
                                    png_infop* info_ptr,
                                    png_uint_32* width, 
                                    png_uint_32* height, 
                                    png_byte* channels){  
    unsigned char header[8];  
    size_t bytesRead;  
    int result = 0;  
    FILE* fp = NULL;  
    //png_structp png_ptr = NULL;  
    //png_infop info_ptr = NULL;  
    int color_type, bit_depth;  
    //png_uint_32 width;  
    //png_uint_32 height;  
    //png_byte c
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值