Python ImageOps.fit()在ICO图像中具有透明部分
我有一个任意大小的源文件Python ImageOps.fit()在ICO图像中具有透明部分,python,python-imaging-library,alpha,Python,Python Imaging Library,Alpha,我有一个任意大小的源文件image.ico,想要创建一个缩略图。这是我现在正在使用的代码: converted_file = cStringIO.StringIO() thumb = ImageOps.fit(image, (width, height), Image.ANTIALIAS) thumb.save(converted_file, format='png') 我选择了png作为扩展名,因为PIL不支持可能是罪魁祸首的ico文件。它的工作原理与不应用透明度这一
image.ico
,想要创建一个缩略图。这是我现在正在使用的代码:
converted_file = cStringIO.StringIO()
thumb = ImageOps.fit(image, (width, height), Image.ANTIALIAS)
thumb.save(converted_file, format='png')
我选择了png
作为扩展名,因为PIL不支持可能是罪魁祸首的ico
文件。它的工作原理与不应用透明度这一事实无关。alpha=0的零件渲染为黑色,而不是透明。如何修复此行为
/edit
我也试过():
同样的效果。问题确实在于PIL不知道如何准确读取ICO文件。有两种方法可以解决此问题:
from PIL import Image
import Win32IconImagePlugin
现在,您可以使用正确的格式:
thumb.save(converted_file, format='ico')
thumb.save(converted_file, format='ico')
2.枕头
有
只需拆下pil并安装枕头:
pip uninstall pil
pip install pillow
确保更改所有全局pil导入:
import Image, ImageOps
到
现在,您可以使用正确的格式:
thumb.save(converted_file, format='ico')
thumb.save(converted_file, format='ico')
你怎么看这张照片?例如,尝试在Chrome中打开它。透明区域是否仍然显示为黑色?是。这个答案可能就是解决方案: