PIL lib не работает с экраном SSD1306 - PullRequest
0 голосов
/ 26 апреля 2019

Библиотека PIL не работает с экраном ssd1306.Я пытаюсь отобразить некоторый текст, и когда я хочу его обновить, новый текст записывается поверх предыдущего.

Я использую PIL, который является форком PILLOW

На данный момент я просто хочу взять байт в i2c и записать его на экране

Thxзаранее!

Я пытался работать с этими методами: https://pillow.readthedocs.io/en/3.1.x/reference/Image.html Например, я пытался нарисовать прямоугольник: rectangle = ImageDraw.Draw.rectangle ([40,50,50,60], БЕЛЫЙ, ЧЕРНЫЙ) но библиотека не знает прямоугольник ...

import smbus
import time
import Adafruit_GPIO.SPI as SPI
import Adafruit_SSD1306

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from PIL import ImageColor

RST = 0

#Creation of a display object. We don't need to put its i2c addr
#because it's known and static
disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

#Remplacer 0 par 1 si nouveau Raspberry
bus = smbus.SMBus(1)
address = 0x27

disp = Adafruit_SSD1306.SSD1306_128_64(rst=RST)

bus = smbus.SMBus(1)
address = 0x27

disp.begin()
disp.clear()
disp.display()

width = disp.width
height = disp.height
image = Image.new('1', (width, height))
rect_image = Image.new('1', (width, height))

#Get drawing object to draw on image.
draw = ImageDraw.Draw(image)
rectangle = ImageDraw.Draw.rectangle([40, 50, 50, 60], WHITE, BLACK)
#Select the font
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 20)

#Draw some text 
draw.text((0,0), 'Master fader', font=font, fill=255)
font = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf', 22)
draw.text((50,40), '50%', font=font, fill=255)

#Actualise l'affichage - Update display
disp.image(image)
disp.display()
disp.clear();

#Send datas
while 1:
    reponse = bus.read_byte(address)

        print "ADC value :", reponse

        disp.image(rect_image)

        disp.display()

        draw.text((50,40), str(reponse) + " %", font=font, fill=255)

        disp.image(image)

        disp.display()

Когда я пытаюсь запустить код:

Traceback (последний вызов был последним): File«i2c_attiny_send_and_receive_with_screen.py», строка 34, в прямоугольнике = ImageDraw.Draw.rectangle ([40, 50, 50, 60], WHITE, BLACK) AttributeError: у объекта 'function' нет атрибута 'rectangle'

...