首页 > 评测 > PIL与OLED的组合--Adafruit 128x64 OLED for Raspberry上手
PIL与OLED的组合--Adafruit 128x64 OLED for Raspberry上手
- [导读]
- Python Imaging Library (PIL)是python下的图像处理模块,支持多种格式,并提供强大的图形与图像处理功能。OLED显示屏是利用有机电自发光二极管制成的显示屏。由于同时具备自发光有机电激发光二极管,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
disp.display()
传统的绘图方法,先写一个绘点的函数,然后不管是绘制字符,还是绘制几何图形及图像,都是调用这个绘点函数来实现,如果要实现更好的性能,也许会通过块操作(包括硬件DMA等),不过在这里,我们看不到任何与绘点相关的操作,我们看到的只是一幅图,没错,就是一幅图!
前面的初始化代码我们略过不提,其中语句
font = ImageFont.truetype('msyh.ttc', 12)
创建一个ImageFont对象,该对象指定了用来向Image中绘制字符所使用的字体,可以直接使用truetype字库,同时指明字体大小。
image = Image.new('1', size)
draw = ImageDraw.Draw(image)
draw.text((0, 0), '古诗一首', font=font, fill=255)
draw.text((0, 20), '白日依山尽, 黄河入海流', font=font, fill=255)
draw.text((0, 38), '欲穷千里目, 更上一层楼', font=font, fill=255)
这一部分代码先创建一幅图片,然后使用ImageDraw向上绘制指定的文字,使用指定的字体及填充色。
最后的两行代码将图像显示到OLED上,很简单,效果呢,也很简单。
不过调用起来确实非常舒服!
如果直接加载图像文件并显示,则步骤更简单,如下是显示非常有名的lena图像的代码
from PIL import Image, ImageDraw, ImageFont
import Adafruit_SSD1306
RST = None
DISP_ADDR = 0x3c
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)
disp.begin()
disp.clear()
disp.display()
image = Image.open('lena.png').convert('1')
disp.image(image)
disp.display()
代码就不分析了,调试效果如下,后面一张图是原图
差别有点大,主要原因是图片二值化后细节丢失太多,再加上缩放后细节也会丢失!
总体说来,Adafruit 128x64 OLED for Raspberry不错!一方面,我们终于可以扔掉显示器了(P:-)),其次,可以使用这个模块来学习简单的计算图形学(绘图,例如直线生成算法,曲线的生成算法等),细节都隐藏在PIL中;还有,再也不用担心找不到设备的IP地址了,如下
当然,要是价格再便宜一点就更好了!
- 本文系21ic原创,未经许可禁止转载!
网友评论
- 联系人:巧克力娃娃
- 邮箱:board@21ic.com
- 我要投稿
-
欢迎入驻,开放投稿
-
人均百万?英伟达中国员工收入曝光! 2024-08-29
-
《黑神话:悟空》玩家硬盘升级攻略:提升游戏体验,畅享3A大作 2024-08-29
-
数睿数据参加《系统与软件工程 低代码开发平台通用技术要求》国家标准编制 2024-08-29
- NRF52810蓝牙数字耳机找人定制
预算:¥30005天前
- 125KW模块式PCS软硬件外包开发
预算:¥1100000015小时前
- 12V汽车启动电源项目BMS设计
预算:¥50000023小时前
- 数据可视化软件 开发
预算:¥5000023小时前
- PLC项目调试修改
预算:¥100001天前
- 起动电机控制器开发
预算:¥1100001天前