100ASK_IMX6ULL arm板子如何显示图片、汉字、划线、背景色
最近在研究基于imx6ull开发板,想让开发板支持显示图片、字符串、背景色的功能。
操作的主要步骤如下:
- 移植设备树和驱动
- 移植libjpeg库
- 编写测试程序
一、移植设备树和驱动
开发板原厂SDK已经移植了lcd对应的设备树和驱动。具体可以参考韦东山老师的文章
https://blog.csdn.net/thisway_diy/article/details/104697924
二、移植libjpeg库
1.下载libjpeg库
下载地址:
http://www.ijg.org/files/
选择版本:jpegsrc.v6b.tar.gz
2.解压
yikou@ubuntu:/work/lib$ tar -zxvf jpegsrc.v6b.tar.gz
3.配置
yikou@ubuntu:/work/lib$ cd jpeg-6b/
./configure --host=arm-linux-gnueabihf --prefix=$PWD/temp_install
如果遇到错误提示没有某个目录,只需要手动创建即可
4. 安装
yikou@ubuntu:/work/lib/jpeg-6b$ make
yikou@ubuntu:/work/lib/jpeg-6b$ make install
5.查看
yikou@ubuntu:/work/lib/jpeg-6b$ cd temp_install/
yikou@ubuntu:/work/lib/jpeg-6b/temp_install$ ls
bin include lib share
我没有使用动态库,而是直接使用静态库/work/lib/jpeg-6b/libjpeg.a 编译代码,方便操作。
三、 编译测试程序
一口君是把静态库直接拷贝到测试代码目录lib下,头文件拷贝到include下。
- lcd.c、lcd_show_jpeg.c为基于libjpeg库实现的显示汉字、显示图片、划线等功能函数。
- HZK16为汉字库
- ./lib/libjpeg.a 是libjpeg静态库
- include下的头文件是图片格式处理、显示字符串、划线要用到的其他的头文件
这些功能具体原理,可以自己查看代码,暂不讨论。
完整代码请关注 一口Linux,后台回复IMX6ULLlcd
以下是测试程序文件:
main.c
#include <stdio.h>
#include <unistd.h>
#include "lcd.h"
#include "lcd_show_jpeg.h"
int main(int argc, const char *argv[])
{
LCD_Init(); //初始化
LCD_Clear(RED);//背景呈红色
for(;;)
{//1024 * 600
printf("------一口Linux----------\n");
LCD_PutString(240,136,"一口Linux",BLUE,RED);//在240.136位置显示一口Linux,蓝字红底
sleep(1);
LCD_Clear(BLUE);
show_jpeg("test.jpeg");//显示图片test.jpeg
sleep(10);
}
return 0;
}
arm-linux-gnueabihf-gcc *.c -o run -I ./include/ ./lib/libjpeg.a
执行结果:
想呈现其他显示效果,只需根据实例调用对应函数即可。
备注:常见错误解决
如果版本选择的不对,会遇到以下错误:
Wrong JPEG library version: library is 90, caller expects 62
因为使用的库版本太高是90的,所以需要下载62版本,对应的是这个压缩包jpegsrc.v6b.tar.gz。
其中:62 对应 6b
在移植mjpeg-streamer也会遇到类似错误,按照步骤修改即可。
然后按照1-5步骤重新操作即可
更多linux知识,关注 一口Linux
100ASK_IMX6ULL arm板子如何显示图片、汉字、划线、背景色的更多相关文章
- 将中文库导入到ARM板子中以解决中文显示乱码的教程
1.将中文字符集导入到ARM板子中的/usr/fonts/目录下 在这里我们使用的字符集为:DroidSansFallback.ttf 下载地址为:https://pan.baidu.com/s/1e ...
- python将图片转换为Framebuffer裸数据格式(终端显示图片)
要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口,直接写入像素信息即可. 但普通的图片带有头部信息或者编码格式不同,直接送入Framebuffer是显 ...
- EmguCV控件Emgu.CV.UI.ImageBox及C# picturebox显示图片连续刷新出现闪烁问题
在上一篇里,EmguCV(OpenCV)实现高效显示汉字及叠加 实现了视频叠加及显示,但存在问题,就是 Emgu.CV.UI.ImageBox及C# picturebox显示图片时都会出现闪烁,尤其 ...
- Android TextView里直接显示图片的三种方法
方法一:重写TextView的onDraw方法,也挺直观就是不太好控制显示完图片后再显示字体所占空间的位置关系.一般假设字体是在图片上重叠的推荐这样写.时间关系,这个不付源代码了. 方法二:利用Tex ...
- 【linux基础】关于ARM板子使用O3编译选项优化
前言 应领导要求需要将最初级版本的算法移植到ARM板子上,并进行优化,以期达到实时. 平台 移植前: TX2 移植后: ARM() processor : model name : ARMv7 Pro ...
- python将图片转换为Framebuffer裸数据格式(终端显示图片)【转】
转自:https://www.cnblogs.com/zqb-all/p/6107905.html 要在ubuntu终端显示图片或者在板子的LCD显示图片,Framebuffer是一个简单易用的接口, ...
- img只显示图片一部分 或 css设置背景图片只显示图片指定区域
17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左 ...
- Chrome 控制台新玩法-console显示图片以及为文字加样式
有兴趣的同学可以文章最后的代码复制贴到控制台玩玩. Go for Code 在正常模式下,一般只能向console 控制台输出简单的文字信息.但为了把信息输出得更优雅更便于阅读,除了cosole.lo ...
- 如何使用SOIL在VS2012的 C++环境下显示图片
先看下效果. 这是一个很无聊的功能....首先说下,我做这个功能的初衷并不是为了实现在控制台中显示图片...(这貌似很无聊) 而是因为自己想做用C做一个游戏:http://q.cnblogs.com/ ...
- Qt自适应大小显示图片,添加菜单
由于后面的图像处理需要UI,OpenCV自带也不怎么会,MFC实在懒得学的.听同学说Qt不错,就用Qt做UI了. 本文主要介绍三个内容:在Qt Creator中使用OpenCV2.Qt中自适应显示图片 ...
随机推荐
- Android系统源码的整编和单编
# Android系统源码的整编和单编 文章作者: 刘望舒 文章链接: http://liuwangshu.cn/framework/aosp/3-compiling-aosp.html 前言 很多时 ...
- python基础-基本语句
1 条件语句 在进行逻辑判断时,我们需要用到条件语句,Python 提供了 if.elif.else 来进行逻辑判断.格式如下所示: 1 if 判断条件1: 2 执行语句1... 3 elif 判断条 ...
- [UG 二次开发 python ] 截图,并用 opencv 显示出来
需要 numpy,cv2 截图,去除背景,只显示主要部分 # nx: threaded from typing import Dict import NXOpen import numpy as np ...
- 基于wxpython的时钟小工具
前言 基于python3.10 + wxpython 的时钟小工具 代码由chatgpt3.5生成,作者自己调试.留作后续参考. 正文 timer_ok.py import wx import tim ...
- Simple WPF: WPF 实现按钮的长按,短按功能
最新内容优先发布于个人博客:小虎技术分享站,随后逐步搬运到博客园. 实现了一个支持长短按得按钮组件,单击可以触发Click事件,长按可以触发LongPressed事件,长按松开时触发LongClick ...
- P1387
#include<iostream> #include<utility> using namespace std; typedef long long ll; #define ...
- 《从零开始学习Python爬虫:顶点小说全网爬取实战》
顶点小说 装xpath helper GitHub - mic1on/xpath-helper-plus: 这是一个xpath开发者的工具,可以帮助开发者快速的定位网页元素. Question:加载完 ...
- 也说一说IDEA热部署Web项目最终解决方案,确实大大提高工作效率
热部署就是正在运行状态的应用,修改了它的源码之后,在不重新启动的情况下能够自动把增量内容编译并部署到服务器上,使得修改立即生效.热部署为了解决的问题有两个: 1.在开发的时候,修改代码后不需要重启应用 ...
- web259(超详细)
SoapClient看完之后还不是很懂的话就可以去下面的两个网址去补充一下 SoapClient 是 PHP 中用于与 SOAP(Simple Object Access Protocol)服务进行通 ...
- [oeasy]python0094_视频游戏_双人网球_pong_atari_mos_6502_雅达利_米洛华
编码进化 回忆上次内容 上次 我们回顾了 微软之前的 比尔盖茨和保罗艾伦 mits 迎来的 是帮手 还是隐患? intel-8080 遇到了 mos-6502 底层硬件 驱动 游戏行业进化 不光是扑克 ...