python - Python Pillow .ico 转换为 .gif
问题描述
我使用了 python 枕头库,因为我需要将 .ico 转换为 .gif
因此,我将 Pillow 6.1.0 版本与 Python 3.7.0 一起使用,我执行以下操作:
from PIL import Image
im = Image.open("a.ico")
im.show()
im.save("a.gif")
.ico 文件具有透明背景
但是 im.show() 加载的图像是黑色背景所以最后我得到了黑色背景 .gif 文件
我想知道如何获得透明的 .gif 转换文件!
解决方案
im.show()
加载的图像是黑色背景
这是因为在显示之前Image.show()
将图像转换为(位图)。.bmp
并且Bitmap inPIL
不支持 Alpha(可变透明度/不透明度)。.ico
因此,当您尝试使用显示图像时,图像中的 alpha 数据会丢失Image.show()
。
解决方案:-不要使用 查看包含 alpha 值Image.show()
的图像,而是保存图像然后查看它(通过一些图像处理包,如photoshop等,或使用操作系统的内置图像查看器,如Windows 10 中的照片)。
我想知道如何获得透明的
.gif
转换文件!
.gif
(图形交换格式)不支持 Alpha 通道。因此,您无法在保留透明区域.ico
的同时将文件转换为文件。.gif
因此,不建议将具有 Alpha 通道的图像保存到 a .gif
,因为它最终会产生伪影并会降低原始图像的质量。
解决方案:-我建议您选择支持 alpha 通道的格式,如.png
or 。.jp2
它们也支持大范围的颜色(与仅支持 256 种离散颜色(8 位调色板)的GIF不同)。
推荐阅读
- c++ - 避免将 C++ 目标文件添加到 Ctags 标签文件中
- reactjs - 无法从“App.js”解析“./scenes/main”
- python - KafkaConnectionError:111 ECONNREFUSED
- python-3.x - 如何在 django 中使用登录的用户名填充可编辑的表单字段?
- javascript - Reactjs 如何使用 Typescript 将 props 从 index.html 传递到 App 组件
- asp.net-core - 如果使用延迟执行初始化一组 Mock 对象,则 Moq 验证不起作用
- ckeditor - CKEditor 5 - elementToAttribute 多个类
- google-apps-script - 用脚本隐藏谷歌表格中的列
- msal - 如何运行 MSAL 样本?
- python - 如何从python中的张量反转每个子数组?