Преобразование градаций серого в png с прозрачностью, используя PIL - PullRequest
3 голосов
/ 15 декабря 2011

PIL искажает изображения png с прозрачностью, если я делаю их в градациях серого.Почему?

Вот мой код:

input = Image.open('input.png')
output = ImageOps.grayscale(input)
output.save('output.png', **input.info)

Вход

http://imgur.com/a/m50p6

Выход

http://imgur.com/a/m50p6

есть ли способ это исправить?

Ответы [ 2 ]

8 голосов
/ 15 декабря 2011

Вы можете использовать convert метод с трюком яркости:

Image.open('input.png').convert('LA').save('output.png')
0 голосов
/ 11 сентября 2018

Я тоже столкнулся с этой проблемой. Единственное решение, которое мне удалось найти, - это преобразовать в «LA», а затем обратно в «RGBA»

Попытка:

Image.open('input.png').convert('LA').convert('RGBA')

Я пытался отобразить полученный PNG в градациях серого с прозрачностью на холсте tkinter, но я думаю, что этот метод, вероятно, также будет работать для сохранения вывода.

...