正点原子 i.mx6ull裸板RGB屏 显示彩色图片 (单片机显示彩色图片通用)取模软件

2023-05-16

编者注:阅读之前需要完成屏幕指定位置画点操作,屏幕画点本文不展开。

软件:Image2Lcd 2.9       vscode

硬件:正点原子阿尔法开发板(i.mx6ull),原子哥看到请联系我,打钱,广告费。。

系统:Ubuntu      Windows

需求:开发板RGB屏幕显示彩色图片

前提:屏幕指定位置画点

描述:通过图片取模软件Image2Lcd 2.9对图片进行取模,得到一维十六进制数组,通过指定区域的各个像素点进行描点操作,从而显示图片。

图片取模步骤:

Windows中,使用”画图“打开某张任意格式的图片,点击重新调整大小。

 根据屏幕分辨率选择合适的大小(这里的选择相对来讲不是太重要),我的RGB屏幕分辨率800*480

 选择另存为bmp格式的图像。

 图片取模软件Image2Lcd 2.9打开该图片。具体设置图中有详细描述,必须注意输出图像的分辨率(输出图像的分辨率就是后面嵌套for循环描点的两个边界),因为输出图像的分辨率与显示密切相关。

参数设置好之后,点击保存,生成图片的一维数组表示。一定要注意:对于RGB屏幕来说选用的是RGB888格式,而取模软件得到的是BGR格式,在获取像素点的时候应该格外注意,交换RG两个元素的位置。

 代码撰写:

将上面获得的temp.c文件传输到Ubuntu中,在VSCode中新建一个picture.h头文件,将temp.c中的数组复制到picture.h中。

 在描点函数的LCD接口.c文件中定义一个函数,lcd_show_picture(..),并在相应的头文件中声明。

//图片显示RGB888
//x:欲显示图片左上角的位置
//y:欲显示图片左上角的位置
//x_width:欲显示图片的分辨率(水平宽度)
//y_length:欲显示图片的分辨率(垂直长度)
unsigned char lcd_show_picture(unsigned short x, unsigned short y, unsigned short x_width, unsigned y_length, unsigned char *pic)
{
	if(x < 0 || x > 800 || y < 0 || y > 480)return ERROR;//判断图片左上脚位置是否合法
	
	int pix_num = 0;//存放当前已绘制像素点个数
	short int i, j = 0;//行列临时变量
	for(i = 0; i<y_length; i++)//对某一行
	{
		for(j = 0; j< x_width; j++)//图片取模数组中三个十六进制表示一个像素点
		{
			//这里对R和B进行交换
			//即对一个像素点的三个元素 第一个和第三个进行交换 高位在前 直接交换即可
			//逐行显示 y固定 x累加
			//pic[pix_num*3]<<0 		B
			//pic[pix_num*3 + 1]<<8     G
			// pic[pix_num*3 + 2]<<16 	R
			lcd_drawpoint(x+j, y+i, pic[pix_num*3]<<0 | pic[pix_num*3 + 1]<<8 | pic[pix_num*3 + 2]<<16);
			pix_num++;
		}
	}
	return OK;
}

main.c文件中添加相应的头文件,并调用绘图函数进行绘图。从x=80,y=15开始显示,图片的分辨率为635*450,也就是图片取模软件输出图像的分辨率

lcd_show_picture(80, 15, 635, 450, miaomiao);

效果图:

可以看到,由于我的屏幕分辨率为800*480,显示的图片分辨率为635*450,所以有些地方留白。

完成!


加入圈子

🍎欢迎大家加入组织,一起交流、学习,群内多为嵌入式爱好者,也有企业MCU、Linux大佬carry。

🍎 球球群:【嵌入式c、c++、单片机、linux技术交流2群】🍎

自己搜索吧,官方不让发,净想着白嫖我文章!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正点原子 i.mx6ull裸板RGB屏 显示彩色图片 (单片机显示彩色图片通用)取模软件 的相关文章

  • JAVA代码实现字符串匹配(一)——BF、KMP

    话不多说 xff0c 直接进入主题 xff1a 题目描述 xff1a 给定两个字符串text和pattern xff0c 请你在text字符串中找出pattern字符串出现的第一个位置 xff08 下标从0开始 xff09 xff0c 如果
  • pwntools, terminal =‘tmux‘ 报错

    pwntools terminal 61 tmux 报错 Traceback most recent call last File exp py line 4 in gdb attach File home pwn pwn lib pyth
  • 更改手动导入的wsl的默认登录用户

    导入了一个wsl后 xff0c 每次登录都是root用户 xff0c 这个就有点不太好 网上的教程都是说在ps里用分发版的对应exe文件来设置默认用户 xff0c 但是导入的这个wsl我没找到这个exe 找了半天然后看了微软官方的教程 xf
  • v8安装fetch不上

    大佬方案 xff1a 白嫖github action 感谢大佬
  • pwnabletw-babystack

    BabyStack 思路 危险函数 xff0c strcpy 在copy的时候strcpy看似没有问题 xff0c 但是由于src的内容并没有清空 xff0c 还保存着被销毁栈的原有数据 xff0c 而strcpy是根据 34 x00 34
  • vmware win7虚拟机安装vmtools坑

    win7镜像下载 要下带SP1这个记号的 xff0c 表示有service pack 1这个补丁的 一定一定记得 xff0c 不然vmtools装不上 补丁 vmtools安装期间有很多驱动安不上的话 xff0c 首先 xff0c 安装一个
  • Python学习第10天——GUI初步

    Python学习第10天 1 多个库2 所写的代码 1 多个库 图形开发界面的库 Tkinter xff1a Tkinter 模块 Tk 接口 是 Python 的标准 Tk GUI 工具包的接口 Tk 和 Tkinter 可以在大多数的
  • IO扩展芯片PCF8574的中断引脚的理解

    The PCF8574 device provides an open drain output INT that can be connected to the interrupt input of a microcontroller A
  • java中的字符转换为数字 十进制转为二进制

    java中的字符转整数 span class token comment 方式1 span span class token keyword char span c span class token operator 61 span spa
  • xshell登录 安卓手机

    局域网远程连接手机 通过ssh登录到手机 Termux安装Termux安装openssh启动sshd服务配置登录密钥方法1方法2 手机查看当前用户名手机查看当前ip电脑cmd ssh到手机电脑xshell连接到ssh手机 通过ssh登录到手
  • vscode插件之Linux相关插件

    Linux相关插件 1 Remote SSH 远程连接插件2 shell format 代码格式化工具3 shellman 代码语法提示4 Linux ansible 语法提示5 皮肤设置5 1 Dracula Official5 2 ta
  • linux-优化 PS1

    PS1 记录 span class token builtin class name export span span class token assign left variable span class token environmen
  • cmd 设置 路由 route

    查询路由 route print 删除单条路由 route delete span class token number 192 168 span 4 0 span class token punctuation span 网络地址 spa
  • samba 共享文件 Linux 为共享端 windows 为客户端

    1 安装samba yum span class token parameter variable y span span class token function install span samba 2 创建新用户 创建共享目录 配置s
  • dell 服务器 重装Linux系统

    dell 服务器 从U盘启动安装linux系统 工具 xff1a linux 系统 U盘启动盘 参考博客 ultraISO 制作 linux系统U盘启动盘 U盘启动盘接入dell服务器USB接口 尽量拆入 服务器后面的u口 1 开机启动de
  • LINUX安装openssl

    openssl 官网下载 https www openssl org source old 1 解压openssl包 xff1a span class token function tar span span class token par
  • 设置win服务器代理

    在Windows系统下 xff0c 可以使用以下命令设置代理地址 开启和关闭代理 xff1a 1 设置代理 netsh winhttp span class token builtin class name set span proxy m
  • docker frp搭建http代理

    docker compose yml version span class token string 34 2 34 span services frpc image alpine latest hostname frpc restart
  • Proxmox VE 套娃做pve集群实验ceph搭建及ha迁移 超融合

    纯粹是为了折腾 xff1a xff09 1 环境介绍 存储也可以说是超融合 OS xff1a Virtual Environment 6 2 4 pve231 主机 pve118 172 16 1 118 虚拟机1 pve119 172 1
  • docker-compose搭建lnmp环境

    使用命令创建文件和文件夹 span class token function mkdir span p span class token punctuation span php nginx span class token punctua

随机推荐