python-3.x 有没有办法在Pillow中显示比实际屏幕尺寸小的图像?

h7wcgrx3  于 2022-12-27  发布在  Python
关注(0)|答案(1)|浏览(121)

我正在做一个在12864 OLED显示屏上显示图像的项目。为了做到这一点,我使用枕头和Python3。
基本上都工作正常,我能够显示我喜欢显示的图像。只要它们正好是128
64像素即是。
但我真正喜欢的是有许多较小的图像。比如说1616。这些较小的图像,然后我想写在一个特定的X,Y位置的显示基于一些输入变量。因此,覆盖当前的1616像素的位置与16*16的图像我提供。
当我现在这样做,我得到正确的错误,我的图像比显示器大小小。(完整的错误如下)。好吧,我知道这是正确的,但有什么办法我仍然可以实现这一点?
我为此伤透了脑筋,而且我似乎在文档或互联网上找不到。

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).
lokaqttq

lokaqttq1#

你可以这样做:

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')

相关问题