如何在PIL中将具有透明度的基于调色板的PNG转换为RGB?

时间:2015-09-23 03:55:33

标签: image google-app-engine png python-imaging-library google-cloud-storage

我目前正在应用引擎中构建一个网站,将图片上传到谷歌云端存储并完成基本操作我使用的是python的PIL

我一直遇到以下图片的问题,另一个stackoverflow成员提到的是一个带透明度的基于调色板的PNG,我读过的PIL可能有点儿错误

enter image description here

我的问题实际上是回归基础:将透明像素设置为#FFF的RGB格式转换为最佳方法是什么?我已经能够通过组合的RGBA然后RGB粘贴来实现它,但这似乎是多余的

然而,对于直接转换,我得到了一个错误的透明度掩码,即使用PIL Convert PNG or GIF with Transparency to JPG without中的解决方案

此外,如果有人知道为什么图像会在转换后降低到可怕的质量,这对我来说完全是一个奖励!

enter image description here

2 个答案:

答案 0 :(得分:0)

这样做的方法是首先将文件转换为jpg - 似乎是png编码的问题(或与之相关的问题)

答案 1 :(得分:0)

查看我使用的此链接,并获得从透明PNG到GIF的平滑转换:

Convert RGBA PNG to RGB with PIL

您正在寻找的功能是pure_pil_alpha_to_color_v2

我还用于我的图像转换工具PySmile:

https://github.com/vietlq/PySmile/blob/master/pysmile.py