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

How Do I Convert Palette-Based PNG with Transparency To RGB in PIL?

我目前正在 App Engine 中构建一个网站,用于将图像上传到 google 云存储并完成基本操作我正在使用 python 的 PIL

我一直遇到以下图像的问题,另一位 Whosebug 成员提到的是基于调色板的透明 PNG,我一直在阅读它在 PIL 中可能有点错误

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

但是,对于直接转换,我得到了一个糟糕的透明蒙版,即使用来自 PIL Convert PNG or GIF with Transparency to JPG without

的解决方案

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

一种方法是先将文件转换为 jpg——这似乎是 png 编码(或与之相关的东西)的问题

看看我使用的这个 link 并从透明 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