Когда я загружаю Pillow с pygame, я получаю сообщение об ошибке: «ValueError: Нераспознанный тип формата» - PullRequest
1 голос
/ 01 февраля 2020

Я хочу загрузить подушку Image с Pygame. Я преобразовал изображение PNG в объект Python bytes через .tobytes() и загрузил его в Pygame с помощью pygame.image.fromstring().

Это мой код:

from PIL import Image
import pygame
image = Image.open("./QR/test.png")

image.show()
mode = image.mode
size = image.size
data = image.tobytes()

py_image = pygame.image.fromstring(data, size, mode)

My * Версия 1015 * - 3.7.5, версия Pillow - 7.0.0, версия Pygame - 1.9.6. Я получил ошибку в последней строке:

ValueError: Unrecognized type of format

1 Ответ

1 голос
/ 02 февраля 2020

Проблема в том, что Подушка загружает изображение в режиме оттенков серого, потому что это возможно, но тогда Pygame не может распознать это. Чтобы исправить это, вам нужно convert() изображение в формате, понятном Pygame, изменив третью строку на:

image = Image.open("./QR/test.png").convert("RGB")

Если вам нужен альфа-канал, измените "RGB" на "RGBA" .

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

py_image = pygame.image.load("./QR/test.png")

, что намного быстрее и короче.

...