找回密码
 立即注册
查看: 627|回复: 7

LCD使用叠加模式的显示字体的时候,背景是图片可以消除重影吗?【已解决】

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-02-15 09:09:48
已绑定手机

8

主题

26

回帖

306

积分

中级会员

积分
306
发表于 2024-12-5 20:35:11 | 显示全部楼层 |阅读模式

这个好像是老生常谈的问题了,图片储存在SPI Flash里面,RGB565格式,

  1. 一个像素是2字节,前面的是高位还是地位?比如我设置一个数组u8 Pic[2]; Pic[0]是高位吗?

  2. 我不知道怎么算像素地址,一张图片是320X240 ,但是一个像素占2Byte,总共156000Byte;我是怎么算像素地址呢,当前我是这样算的(x+(y-1)*320)*2。一行320个像素 Y+1就多320个像素,最后加上当X轴的像素。

  3. 附上当前研究视频:

  4. 附上代码image.png

    image.png

  5. 我个人感觉在显示时钟数字上面改是错误的。不如在数字之前刷屏一下。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4850

回帖

8384

积分

超级版主

DebugLab

积分
8384
发表于 2024-12-5 22:29:30 | 显示全部楼层
整个字符区域都要刷新,比如24*48
字库是黑白的位图,一个像素1位,一般1为有内容,0为没有
字库某位为1,屏幕上某个像素就取调色板中某个颜色的16位值显示
字库某位为0,就去背景图片中找到对应的像素,取16位值显示
遍历全部24*48像素,完成一个字符的显示
字库就是alpha通道,根据alpha通道决定填充纯色还是背景图

点评

甚至通过计算可以显示半透明的字符  详情 回复 发表于 2024-12-5 22:31
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4850

回帖

8384

积分

超级版主

DebugLab

积分
8384
发表于 2024-12-5 22:31:13 | 显示全部楼层
Debu*** 发表于 2024-12-5 22:29
整个字符区域都要刷新,比如24*48
字库是黑白的位图,一个像素1位,一般1为有内容,0为没有
字库某位为1, ...

甚至通过计算可以显示半透明的字符
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-02-15 09:09:48
已绑定手机

8

主题

26

回帖

306

积分

中级会员

积分
306
发表于 2024-12-6 09:59:50 | 显示全部楼层

感谢您的宝贵经验,我经过修改提取背景的颜色的代码,做到如下的效果,字体对齐了,但是我发现颜色没有对齐,这种是X轴还是Y轴没对齐呢

<video controls="controls" src="forum.php?mod=attachment&aid=68888"></video>

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-02-15 09:09:48
已绑定手机

8

主题

26

回帖

306

积分

中级会员

积分
306
发表于 2024-12-7 09:01:35 | 显示全部楼层

最新发现当Y>100时会有错误,当Y<100时则不会
57368598EDD8ADBB5C3FCC6008A5BC7B.png

QQ20241207-105455.png

应该是Y>100时,使用10进制计算偏移量出错了,将其改为16进制后再测试。

点评

回复请在我的回复中点击[attachimg]71576[/attachimg],否则我这边收不到提醒 十进制和十六进制都是可以的,没有区别,十进制超过65535的数,加UL后缀试试,如153600UL  详情 回复 发表于 2024-12-11 11:36
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:57
  • 最近打卡:2025-02-15 09:09:48
已绑定手机

8

主题

26

回帖

306

积分

中级会员

积分
306
发表于 2024-12-7 14:18:28 | 显示全部楼层

经过本人努力已经解决了,解题思路已经在楼中很详细的流程。

难点在于理解像素地址和RGB565像素的大小和渲染方式。

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:123
  • 最近打卡:2025-05-02 09:54:04
已绑定手机

2

主题

106

回帖

266

积分

中级会员

积分
266
发表于 2024-12-11 10:19:48 | 显示全部楼层

qiang

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:424
  • 最近打卡:2025-05-02 14:37:11
已绑定手机

77

主题

4850

回帖

8384

积分

超级版主

DebugLab

积分
8384
发表于 2024-12-11 11:36:02 | 显示全部楼层
omns*** 发表于 2024-12-7 09:01
最新发现当Y&gt;100时会有错误,当Y&lt;100时则不会

回复请在我的回复中点击 截图202412111124394354.jpg ,否则我这边收不到提醒

十进制和十六进制都是可以的,没有区别,十进制超过65535的数,加UL后缀试试,如153600UL
DebugLab
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 22:08 , Processed in 0.173836 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表