PIL не может правильно прочитать отредактированный png - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть скрипт для создания лабиринтов и сохранения их в виде файлов .png.Также у меня есть другой скрипт для решения созданных лабиринтов.Скрипт для решения лабиринтов открывает эти файлы .png и преобразует их в массив.Затем он сохраняет решенный лабиринт как файл .png.

maze = np.array(Image.open('maze.png'))

И он отлично работает.Но когда я редактирую ламинированный лабиринт, сценарий решения создает файл .png, который выглядит как диагональные линии случайных цветов.enter image description here

img = Image.fromarray(maze, 'RGB')
img.save('solved.png')

Но когда я рисую свой собственный лабиринт в Paint, скрипт работает нормально.Почему это так?

1 Ответ

0 голосов
/ 27 сентября 2018

Ваше PNG-изображение, вероятно, имеет палитру, поскольку оно имеет только два цвета и экономно сохраняется с помощью палитры (1 байт индекса на палитру на пиксель вместо 3 байтов триплета RGB на пиксель).

Убедитесьэто RGB с:

maze = np.array(Image.open('maze.png').convert('RGB'))
...