You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pillow保存指定尺寸的.ico格式图片

解决Pillow保存ICO图标尺寸固定为16x16的问题

问题根因

Pillow保存ICO格式文件时,默认使用16x16作为导出尺寸,提前对图像执行resize操作仅会修改图像的像素内容,不会修改ICO格式的导出配置,因此会出现预览时图像缩小、实际文件尺寸仍为16x16的问题。

解决方法

调用save方法时新增sizes参数,参数值为需要导出的图标尺寸组成的列表:

  • 单尺寸ICO直接传入包含对应尺寸元组的列表即可
  • 多尺寸ICO可在列表中加入所有需要的尺寸元组,Pillow会自动生成包含多规格的图标文件

可选优化:若原图包含透明通道,可提前将图像转为RGBA模式,避免导出后透明区域显示异常。

修改后参考代码

import base64
import io
from PIL import Image

image_byte = b"image_bytes"
b = base64.b64decode(image_byte)
# 转RGBA模式保证透明通道正常显示,无透明需求可省略convert步骤
image = Image.open(io.BytesIO(b)).convert('RGBA')
new_image = image.resize((40, 40))
# 保存时指定导出尺寸
new_image.save(icon_path, sizes=[(40, 40)])

内容的提问来源于stack exchange,提问作者Flu_Py Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:24:02