2023-1-13 15:30:02 [显示全部楼层]
134浏览
查看: 134|回复: 2

[求助] [Python]如何在行空板上显示颠倒镜像文字?PIL库用法

[复制链接]
本帖最后由 Forgotten 于 2023-1-13 15:38 编辑

问题:来自QQ群的问题:如何在屏幕上显示文字,上下颠倒,左右镜像?

FriJanuary-202301138142..png

解决思路:
- 行空板专用的unihiker库(基于tkinter)没有提供文字这种非正常显示效果,好在行空板支持万能的Python,因此考虑使用其他Python库。
- 从功能上来说是需要上下左右颠倒,因此图片库一般都有这种功能,只需要找一个可以显示文字的图片库即可,那么最常用的就是PIL库了,搜索一番得到如下代码


代码:
  1. #  -*- coding: UTF-8 -*-

  2. from PIL import Image,ImageDraw,ImageFont
  3. #用PIL库绘图
  4. img = Image.new('RGB', (240, 320), (248, 173, 48)) #创建空白图片
  5. imgdraw = ImageDraw.ImageDraw(img)#创建一个绘图对象,传入img表示对img进行绘图操作

  6. font = ImageFont.truetype(font="HYQiHei_50S.ttf",size=22)#使用什么字体和什么大小,将字体文件放到级目录
  7. imgdraw.text(xy=(10,10),text='dice你好',fill='red',font=font)#调用绘图对象中的text方法表示写入文字


  8. img=img.transpose(Image.FLIP_LEFT_RIGHT)#左右翻转
  9. img=img.transpose(Image.FLIP_TOP_BOTTOM)#上下翻转

  10. #用unihiker库把图片显示到行空板屏幕上
  11. from unihiker import GUI  
  12. gui=GUI()  

  13. gui.draw_image(x=0, y=0, image= img)

  14. import time
  15. while True:
  16.     #增加等待,防止程序退出和卡住
  17.     time.sleep(1)
复制代码


说明 :
先使用PIL库创建一个空白图片,然后在图片上面显示文字,然后对图片进行翻转,最后为了在行空板上显示,用unihiker库的draw_image函数将PIL库产生的图片显示到屏幕上。
注:其中HYQiHei_50S.ttf是字体文件,放到程序同级目录下,可以在行空板群文件搜索下载,网上找其他字体文件也可以。


效果图:
FriJanuary-202301137386..png

完。


王奕翔  见习技师

发表于 2023-1-13 18:50:39

厉害
回复

使用道具 举报

花生编程  高级技师

发表于 2023-1-14 08:50:18

厉害厉害
回复

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2023 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail