Python枕头.ico转换为.gif

时间:2019-07-09 00:43:14

标签: python python-imaging-library

我使用了python枕头库,因为我需要将.ico转换为.gif

所以我将Pillow 6.1.0 ver与Python 3.7.0一起使用了 我执行以下操作:

from PIL import Image

im = Image.open("a.ico")
im.show()

im.save("a.gif")

.ico文件具有透明背景

但是im.show()加载的图像是黑色背景 所以最后我得到了黑色背景.gif文件

我想知道如何获取透明的.gif转换文件!

1 个答案:

答案 0 :(得分:1)

  

im.show()加载的图像是黑色背景

这是因为Image.show()在显示图像之前将图像转换为.bmp(位图)。并且PIL中的位图不支持Alpha(可变透明度/不透明度)。因此,当您尝试使用.ico显示图像时,Image.show()图像中的Alpha数据会丢失。

解决方案:-不要使用Image.show()查看包含alpha值的图像,而是先保存图像,然后再查看(通过某些图像处理包,例如 photoshop 等,或使用操作系统的内置图像查看器,例如Windows 10中的照片 )。

  

我想知道如何获得透明的.gif转换文件!

.gif(图形交换格式)不支持Alpha通道。因此,您无法在保留透明区域的情况下将.ico文件转换为.gif。因此,不建议将具有Alpha通道的图像保存到.gif,因为它最终会出现伪像,并且会降低原始图像的质量。

解决方案:-:我建议您选择一种格式,例如.png.jp2,该格式支持alpha通道。它们还支持多种颜色(与 GIF 相反,后者仅支持256种离散颜色( 8位调色板))。