首頁 > 評測 > PIL與OLED的組合--Adafruit 128x64 OLED for Raspberry上手
PIL與OLED的組合--Adafruit 128x64 OLED for Raspberry上手
- [導(dǎo)讀]
- Python Imaging Library (PIL)是python下的圖像處理模塊,支持多種格式,并提供強(qiáng)大的圖形與圖像處理功能。OLED顯示屏是利用有機(jī)電自發(fā)光二極管制成的顯示屏。由于同時(shí)具備自發(fā)光有機(jī)電激發(fā)光二極管,不需背光源、對比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。
disp.display()
傳統(tǒng)的繪圖方法,先寫一個(gè)繪點(diǎn)的函數(shù),然后不管是繪制字符,還是繪制幾何圖形及圖像,都是調(diào)用這個(gè)繪點(diǎn)函數(shù)來實(shí)現(xiàn),如果要實(shí)現(xiàn)更好的性能,也許會(huì)通過塊操作(包括硬件DMA等),不過在這里,我們看不到任何與繪點(diǎn)相關(guān)的操作,我們看到的只是一幅圖,沒錯(cuò),就是一幅圖!
前面的初始化代碼我們略過不提,其中語句
font = ImageFont.truetype('msyh.ttc', 12)
創(chuàng)建一個(gè)ImageFont對象,該對象指定了用來向Image中繪制字符所使用的字體,可以直接使用truetype字庫,同時(shí)指明字體大小。
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)
這一部分代碼先創(chuàng)建一幅圖片,然后使用ImageDraw向上繪制指定的文字,使用指定的字體及填充色。
最后的兩行代碼將圖像顯示到OLED上,很簡單,效果呢,也很簡單。
不過調(diào)用起來確實(shí)非常舒服!
如果直接加載圖像文件并顯示,則步驟更簡單,如下是顯示非常有名的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()
代碼就不分析了,調(diào)試效果如下,后面一張圖是原圖
差別有點(diǎn)大,主要原因是圖片二值化后細(xì)節(jié)丟失太多,再加上縮放后細(xì)節(jié)也會(huì)丟失!
總體說來,Adafruit 128x64 OLED for Raspberry不錯(cuò)!一方面,我們終于可以扔掉顯示器了(P:-)),其次,可以使用這個(gè)模塊來學(xué)習(xí)簡單的計(jì)算圖形學(xué)(繪圖,例如直線生成算法,曲線的生成算法等),細(xì)節(jié)都隱藏在PIL中;還有,再也不用擔(dān)心找不到設(shè)備的IP地址了,如下
當(dāng)然,要是價(jià)格再便宜一點(diǎn)就更好了!
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開放投稿
-
人均百萬?英偉達(dá)中國員工收入曝光! 2024-08-29
-
《黑神話:悟空》玩家硬盤升級攻略:提升游戲體驗(yàn),暢享3A大作 2024-08-29
-
數(shù)睿數(shù)據(jù)參加《系統(tǒng)與軟件工程 低代碼開發(fā)平臺(tái)通用技術(shù)要求》國家標(biāo)準(zhǔn)編制 2024-08-29
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開發(fā)
預(yù)算:¥1100001天前