首页 > 解决方案 > 如何使用枕头保存具有特定尺寸的 .ico 图像?

问题描述

我需要保存 x 和 y 尺寸的图像,我正在使用枕头这样做,问题是它保存在默认尺寸中,在我的情况下为 16x16,我尝试resize像这样使用:

new_image = image.resize((40, 40))

但仍然是相同的结果,唯一的区别是在图像的预览中它变小了,但它仍然是 16x16,有人有想法吗?

image_byte = b"image_bytes"
b = base64.b64decode(image_byte)
image = Image.open(io.BytesIO(b))
new_image = image.resize((40, 40))
new_image.save(icon_path)

标签: pythonpython-imaging-library

解决方案


根据评论中的讨论:

保存 ICO 文件时,您需要指定要保存的大小(因为ICO可以包含相同(或不同!)图像的多种大小和格式):

new_image.save('icon.ico', sizes=[(256, 256), (128, 128)])

如果您不需要 ICO 文件,只需使用例如 PNG(包含单一格式和大小):

new_image.save('icon.png')

推荐阅读