我正在寻找创造 favicon.ico 从Python以编程方式读取文件,但PIL仅支持读取 ico 文件。

有帮助吗?

解决方案

根据 维基百科 现代浏览器可以处理 PNG 格式的图标,所以也许您可以生成它?

或者, ICO文章 描述了格式...

其他提示

您可以使用 枕头:

from PIL import Image
filename = r'logo.png'
img = Image.open(filename)
img.save('logo.ico')

或者,您可以指定所需的图标大小:

icon_sizes = [(16,16), (32, 32), (48, 48), (64,64)]
img.save('logo.ico', sizes=icon_sizes)

枕头文档 说默认情况下它会生成尺寸[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (255, 255)] 任何大于原始大小或 255 的大小都将被忽略。

是的,它是在 只读 文档部分,但它在某种程度上有效。

也许以下方法会起作用:

  • 使用 PIL 生成图标图像
  • 使用 ImageMagick 的 python 接口将图像转换为 .ico 格式, PythonMagick

我没有尝试过这种方法。ImageMagick Convert 命令行程序能够将 .png 文件转换为 .ico 格式,因此至少 ImageMagick 支持 .ico 格式。

我不知道这是否适用于所有情况,但在 WinXP 上,.ico 可以是大小为 16x16、32x32 或 64x64 的 bmp。只需将扩展名从 bmp 更改为 ico 即可。

如果你有 图像处理, ,(可能是Python中读取/写入图像的最佳库),您可以使用它:

import imageio

img = imageio.imread('logo.png')
imageio.imwrite('logo.ico', img)

安装非常简单

pip install imageio
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top