Есть ли способ показать изображение, которое меньше, чем фактический размер экрана в подушке? - PullRequest
1 голос
/ 30 марта 2020

Я работаю над проектом, который предусматривает отображение изображений на дисплее 128 * 64 Oled. Для этого я использую Подушку вместе с Python3.

В принципе все работает нормально, я могу показать изображения, которые мне нравятся. Пока они ровно 128 * 64 пикселей, то есть.

Но что мне действительно нравится, так это много меньших изображений. Скажи 16 * 16. Эти меньшие изображения я бы затем хотел записать на дисплей в указанном c X, Y месте на основе некоторых входных переменных. Поэтому замените текущие 16 * 16 пикселей в этом месте предоставленным мною изображением 16 * 16.

Когда я сделаю это сейчас, я получу правильную ошибку, что мое изображение меньше размера экрана. (Полная ошибка ниже). Ну, я знаю, что это правильно, но есть ли способ, как я все еще могу этого достичь?

Я ломаю голову над этим. И я не могу найти в документации или Inte rnet.

Traceback (most recent call last):
  File "show_image.py", line 37, in <module>
    show('./images/1_C.png')
  File "show_image.py", line 28, in show
    disp.image(image)
  File "/usr/local/lib/python3.6/dist-packages/Adafruit_SSD1306/SSD1306.py", line 193, in image
    .format(self.width, self.height))
ValueError: Image must be same dimensions as display (128x64).

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете сделать это следующим образом:

from PIL import Image

# Create black background same size as OLED
bg = Image.new('RGB',(128,64),0)

# Load a 16x16 red image from disk and paste into background
red = Image.open('red.png').convert('RGB')
bg.paste(red, (10,20))

# Create 16x16 blue image in memory and paste into background
blue = Image.new('RGB', (16,16), color=(0,0,255))
bg.paste(blue, (80,40))

# Save result
bg.save('result.png')

enter image description here

Ключевые слова : Raspberry Pi, Adafruit, OLED, 128x64 Python, изображение, обработка изображений, дисплей, PIL, подушка

...