bmp转rgb565在framebuffer中显示
来源:互联网 发布:intouch软件下载 编辑:程序博客网 时间:2024/05/21 10:10
需求:在kernel中自定义显示图片
解决办法:在网上找了很多方法,都是去替换的,那样就有了很大的局限性,还比较麻烦,所以经过研究最后找到此方法:
首先:得到一副图片eg:jpeg格式的图片,可以用格式工厂或者其他软件吧jpeg格式转换为bmp格式的图片,再用工具(BmpCvt链接如下:http://download.csdn.net/download/sinat_29891353/9938183)(本来想免费的,但选项中现在没有0积分的选项了,所以就选择了1积分,支持一下吧= =)将bmp格式图片转换为rgb565的c文件数组。
工具使用方法:
双击打开,然后打开一副bmp格式的图片如下图:
选择file->Save as…后弹出如下图:
在保存类型中选择C bitmap file,然后可以设置自己喜欢的名字如didi.c如下图:
然后点击保存弹出如下框:
可以选择rgb565,或者rgb565红蓝交换即bgr565,或者rgb565压缩,等
然后选择保存即可,我这里选择的high color 565(即rgb565)。然后再桌面生产如下图所示的c文件:
用编程工具打开即可看到类似如下的代码:
/********************************************************************** Source file: didi ** Dimensions: 176 * 110 ** NumColors: 16bpp: 65536 ***********************************************************************/#include <stdlib.h>#include "GUI.h"#ifndef GUI_CONST_STORAGE #define GUI_CONST_STORAGE const#endifstatic GUI_CONST_STORAGE unsigned short acdidi[] = { 0xC327, 0xC327, 0xC327, 0xCB27, 0xCB27, 0xCB27, 0xCB47, 0xCB48, 0xCB48, 0xCB48, 0xCB48, 0xCB48, 0xCB68, 0xCB49, 0xCB69, 0xCB69, 0xCB69, 0xD369, 0xD369, 0xD389, 0xD389, 0xD38A, 0xD38A, 0xD38A, 0xD38A, 0xD38A, 0xD3AA, 0xD3AA, 0xD3AA, 0xD3AA, 0xDBAA, 0xDBAA, 0xDBCA, 0xDBCB, 0xDBCB, 0xDBCB, 0xDBCB, 0xDBCB, 0xDBCB, 0xDBCB, 0xDBEB, 0xDBEC, 0xDBEC, 0xDBEC, 0xDBEC, 0xDBEC, 0xE3EC, 0xE3EC, 0xE40C, 0xE40C, 0xE40C, 0xE40D, 0xE40D, 0xE40D, 0xE40D, 0xE40D, 0xE40D, 0xE40D, 0xE42D, 0xE42D, 0xE42D,
接着在kenel相关文件中申请的framebuffer中,用memcpy将acdidi[ ]图片数据copy到framebuffer中,然后拿去显示即可。
本次遇到的问题,显示后发现图片形状是对的,但是颜色不对,如下图:
解决办法:在工具生成图片时选择high color (565),red and blue swapped这个选项生成bgr565的即可。
好用就点个赞吧。欢迎转载,但请注明来源,谢谢配合。
- bmp转rgb565在framebuffer中显示
- 在Framebuffer下编程显示BMP图象
- RGB888转RGB565,wince BMP控件显示位图
- framebuffer显示bmp格式文件
- framebuffer显示bmp格式文件
- 16位bmp文件中RGB555转RGB565算法
- 在Framebuffer下编程显示BMP图象 分享
- BMP RGB565
- Linux: Framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- linux framebuffer 显示bmp图片
- linux framebuffer 显示bmp图片
- Linux framebuffer显示bmp图片
- Linux framebuffer显示bmp图片
- 办公小妙招:如何一键去除PDF文件中的水印
- 【XSY1528】azelso 概率&期望DP
- 将a=["aaa","bbb","ccc"]转化为aaa,bbb,ccc和将a=[111,222,333]转化为111,222,333的字符串作为输出的方法
- 欧拉函数的性质证明(欧拉筛)
- 屏幕适配--自动生成各种屏幕大小的尺寸文件的jar包
- bmp转rgb565在framebuffer中显示
- ios 证书与 profile
- CI使用阿里云短信服务
- XGBoost探索
- Thrift 双向通信实现(C#版)
- Noip2015 Day1 T2 信息传递(虽然是图论题但是...)
- 注解 @CrossOrigin
- 机器学习第四课(padding)
- 数组模拟链表之P1160 队列安排