使用PIL转换带透明度的灰度PNG
我在用PIL处理带透明度的png图片时,如果把它们转换成灰度图,就会出现损坏的情况。为什么会这样呢?
这是我的代码:
input = Image.open('input.png')
output = ImageOps.grayscale(input)
output.save('output.png', **input.info)
输入
输出
有没有办法解决这个问题呢?
2 个回答
1
我也遇到过这个问题。唯一找到的解决办法是先把图片转换成'LA'格式,然后再转换回'RGBA'格式。
你可以试试这个方法:
Image.open('input.png').convert('LA').convert('RGBA')
我当时是想在tkinter画布上显示这个带透明度的灰度PNG图片,不过我觉得这个方法可能也适合用来保存输出。
9
你可以使用 convert
方法,配合亮度的小技巧:
Image.open('input.png').convert('LA').save('output.png')