首頁(yè) > 評(píng)測(cè) > 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ā)光二極管,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。
disp.display()
傳統(tǒng)的繪圖方法,先寫(xiě)一個(gè)繪點(diǎn)的函數(shù),然后不管是繪制字符,還是繪制幾何圖形及圖像,都是調(diào)用這個(gè)繪點(diǎn)函數(shù)來(lái)實(shí)現(xiàn),如果要實(shí)現(xiàn)更好的性能,也許會(huì)通過(guò)塊操作(包括硬件DMA等),不過(guò)在這里,我們看不到任何與繪點(diǎn)相關(guān)的操作,我們看到的只是一幅圖,沒(méi)錯(cuò),就是一幅圖!
前面的初始化代碼我們略過(guò)不提,其中語(yǔ)句
font = ImageFont.truetype('msyh.ttc', 12)
創(chuàng)建一個(gè)ImageFont對(duì)象,該對(duì)象指定了用來(lái)向Image中繪制字符所使用的字體,可以直接使用truetype字庫(kù),同時(shí)指明字體大小。
image = Image.new('1', size)
draw = ImageDraw.Draw(image)
draw.text((0, 0), '古詩(shī)一首', font=font, fill=255)
draw.text((0, 20), '白日依山盡, 黃河入海流', font=font, fill=255)
draw.text((0, 38), '欲窮千里目, 更上一層樓', font=font, fill=255)
這一部分代碼先創(chuàng)建一幅圖片,然后使用ImageDraw向上繪制指定的文字,使用指定的字體及填充色。
最后的兩行代碼將圖像顯示到OLED上,很簡(jiǎn)單,效果呢,也很簡(jiǎn)單。
不過(guò)調(diào)用起來(lái)確實(shí)非常舒服!
如果直接加載圖像文件并顯示,則步驟更簡(jiǎn)單,如下是顯示非常有名的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ì)丟失!
總體說(shuō)來(lái),Adafruit 128x64 OLED for Raspberry不錯(cuò)!一方面,我們終于可以扔掉顯示器了(P:-)),其次,可以使用這個(gè)模塊來(lái)學(xué)習(xí)簡(jiǎn)單的計(jì)算圖形學(xué)(繪圖,例如直線生成算法,曲線的生成算法等),細(xì)節(jié)都隱藏在PIL中;還有,再也不用擔(dān)心找不到設(shè)備的IP地址了,如下
當(dāng)然,要是價(jià)格再便宜一點(diǎn)就更好了!
-
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前