LCD使用叠加模式的显示字体的时候,背景是图片可以消除重影吗?【已解决】
<p>这个好像是老生常谈的问题了,图片储存在SPI Flash里面,RGB565格式,</p><ol>
<li>
<p>一个像素是2字节,前面的是高位还是地位?比如我设置一个数组u8 Pic; Pic是高位吗?</p>
</li>
<li>
<p>我不知道怎么算像素地址,一张图片是320X240 ,但是一个像素占2Byte,总共156000Byte;我是怎么算像素地址呢,当前我是这样算的(x+(y-1)*320)*2。一行320个像素 Y+1就多320个像素,最后加上当X轴的像素。</p>
</li>
<li>
<p>附上当前研究视频:</p>
<video controls="controls" src="forum.php?mod=attachment&aid=68822"></video>
</li>
<li>
<p>附上代码<img src="data/attachment/forum/202412/05/203104t68yy9r0yj6w8x36.png" alt="image.png" title="image.png" /></p>
<p><img src="data/attachment/forum/202412/05/203159b9k9ks55bxsb3s9s.png" alt="image.png" title="image.png" /></p>
</li>
<li>
<p>我个人感觉在显示时钟数字上面改是错误的。不如在数字之前刷屏一下。</p>
</li>
</ol>
整个字符区域都要刷新,比如24*48
字库是黑白的位图,一个像素1位,一般1为有内容,0为没有
字库某位为1,屏幕上某个像素就取调色板中某个颜色的16位值显示
字库某位为0,就去背景图片中找到对应的像素,取16位值显示
遍历全部24*48像素,完成一个字符的显示
字库就是alpha通道,根据alpha通道决定填充纯色还是背景图 DebugLab 发表于 2024-12-5 22:29
整个字符区域都要刷新,比如24*48
字库是黑白的位图,一个像素1位,一般1为有内容,0为没有
字库某位为1, ...
甚至通过计算可以显示半透明的字符 感谢您的宝贵经验,我经过修改提取背景的颜色的代码,做到如下的效果,字体对齐了,但是我发现颜色没有对齐,这种是X轴还是Y轴没对齐呢
<video controls="controls" src="forum.php?mod=attachment&aid=68888"></video>
<p>最新发现当Y>100时会有错误,当Y<100时则不会<br />
<img src="data/attachment/forum/202412/07/114454p73p4p1p1c1kdrt4.png" alt="57368598EDD8ADBB5C3FCC6008A5BC7B.png" title="57368598EDD8ADBB5C3FCC6008A5BC7B.png" /></p>
<p><img src="data/attachment/forum/202412/07/114508hjw39a5btc163jo9.png" alt="QQ20241207-105455.png" title="QQ20241207-105455.png" /></p>
<p>应该是Y>100时,使用10进制计算偏移量出错了,将其改为16进制后再测试。</p>
<p>经过本人努力已经解决了,解题思路已经在楼中很详细的流程。</p>
<p>难点在于理解像素地址和RGB565像素的大小和渲染方式。</p>
<video controls="controls" src="forum.php?mod=attachment&aid=69313"></video>
<p>赞 <img alt="qiang" class="emoji" src="https://www.stcaimcu.com/static/image/smiley/default/qiang.gif" title="qiang" /></p>
omnsvwle 发表于 2024-12-7 09:01
最新发现当Y>100时会有错误,当Y<100时则不会
回复请在我的回复中点击,否则我这边收不到提醒
十进制和十六进制都是可以的,没有区别,十进制超过65535的数,加UL后缀试试,如153600UL
页:
[1]