社区导航

 

搜索
查看: 263|回复: 2
打印 上一主题 下一主题

[原创] “玩板”+在STM32F7DISC上重玩micropython(3)

[复制链接]

9985

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

跳转到指定楼层
楼主
发表于 2020-2-17 22:06 | 只看该作者 |只看大图 |倒序浏览 |阅读模式
本帖最后由 dcexpert 于 2020-2-17 22:19 编辑

图层(layer)

 

STM32F7DISC开发板的图形功能很丰富,其中一个很有特点的功能是图层(layer),layer的概念类似于photoshop中的图层。图层有很多用法,比如可以将图层作为缓冲区,先在一个图层中绘图,然后一次性快速显示;也可以设定图层的透明度(set_transparency),或者设定图层的显示窗口位置和大小等。受到RAM限制,目前仅支持2个图层。0是背景图层,1是前景图层。在图层1绘图时,如果颜色中设置了alpha通道,可以显示出透明色,和图层0进行叠加。

 

 

图层的主要函数:

  • layer_default_init(),初始化
  • select_layer(n),选择当前图层。
  • set_layer_window(n, x, y, width, height),设置一个图层窗口位置的大小
  • set_layer_visible(n, show),n代表图层,show代表显示或隐藏
  • set_transparency(n, tr),n代表图层,tr是透明度(0代表完全透明,255代表不透明)
  • set_layer_address(),设置图层地址,用法还不清楚

 

  • 因为缺少文档,一些功能是不断测试中摸索出来的,可能存在错误或者不准确的地方,欢迎大家指出。

 

具体使用方法请参考2楼的demo,特别注意使用alpha通道开窗和透明度的效果。

 


此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处
 

0


9985

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

沙发
 楼主| 发表于 2020-2-17 22:17 | 只看该作者

测试程序

from time import sleep_ms
import lcdF7D as lcd
import tchF7D as ts

MAX_X = 480
MAX_Y = 272

lcd.init()

lcd.select_layer(0)
lcd.set_text_color(0xFF)
lcd.fill_rect(50, 50, 200, 100)
lcd.set_text_color(0xFF00)
lcd.fill_rect(200, 80, 200, 100)
lcd.set_text_color(0xFF0000)
lcd.fill_rect(100, 100, 200, 100)
lcd.set_text_color(0xFF00)
lcd.set_font(20)
lcd.display_string_at(0, 0, 'rect show on the screen', 0)

lcd.select_layer(1)
lcd.set_text_color(0xFF0000)
lcd.set_font(24)
lcd.display_string_at(0, 60, 'no rect show on the screen', 0)
lcd.set_text_color(0x80, 0)
lcd.fill_rect(180, 90, 30, 30)
sleep_ms(2000)

lcd.set_layer_visible(1, 0)
sleep_ms(2000)

lcd.set_layer_visible(1, 1)

for i in range(255):
    lcd.set_transparency(1, 255 - i)
    sleep_ms(10)

for i in range(220):
    lcd.set_transparency(1, i)
    sleep_ms(10)

 

首先选择图层0,然后绘制3个不同颜色矩形。这时矩形是不会显示在屏幕上的。然后将图层1设置为不可见,就可以看到图层0的矩形了。再设置图层1可见,并逐步调整图层1的透明度。

 



9985

TA的帖子

14

TA的资源

版主

Rank: 6Rank: 6

测评达人

板凳
 楼主| 发表于 2020-2-20 12:30 | 只看该作者
本帖最后由 dcexpert 于 2020-2-20 12:32 编辑

又一个测试图层显示的小程序,轮流在两个图层上print数字。

 

  • layer_print.py (869 Bytes, 下载次数: 0)
  • LCDF7D_PRINT.py (1.49 KB, 下载次数: 0)


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

关闭

站长推荐上一条 1/3 下一条

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( )

GMT+8, 2020-4-8 01:48 , Processed in 0.126636 second(s), 17 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表
北京赛车Pk10全自动下注q群微信群机器人 赛车网站首存送彩金 彩票大赢家 足球投注注册送彩金 pk10机器人 送彩金的娱乐游戏平台 永利高网上开户送彩金 足彩送彩金 易信机器人 送彩金棋牌游戏