Использование PIL для отображения измененного изображения открывает два окна - PullRequest
0 голосов
/ 02 декабря 2018

Я хотел бы отобразить изображение в полноэкранном режиме с помощью библиотеки изображений Python.Я работаю над Raspberry Pi под управлением Raspbian, Python 2.7 и использую ImageMagick для отображения изображения.Запуск следующего кода работает, как и ожидалось:

from PIL import Image

im = Image.open("sampleImage.png")
im.show()

Нормальное функционирование Image.show ()

Однако, если я пытаюсь изменить размер изображения, отображаются два окнаодним из которых я считаю Icon.

from screeninfo import get_monitors

m = get_monitors()
width = m[0].width
height = m[0].height

im = im.resize((width, height))
im.show()

Resized Image.show () отображает два изображения

Я попытался сохранить изображение с измененным размером и открыть его снова, но я получаю те же результаты.Пакет screeninfo поставляется с здесь .Пытаясь найти похожие посты, я нашел this , но я проверил PIL.ImageShow._viewers, и у меня только один зритель.Решения, показанные там, могут также быть старыми, так как ImageShow.py, похоже, не имеет те же проблемы, что и упомянутые в решениях.

1 Ответ

0 голосов
/ 03 декабря 2018

Оказывается, второе окно появляется только в том случае, если размер изображения превышает размер экрана.Если ширина и высота установлены в соответствии с разрешением экрана, это не учитывает строку меню и панель задач, поэтому окно оказывается больше экрана.

Чтобы обойти это, я сделал im = im.resize((width, int(0.95*height)))

...