安装Pillow库
pip install Pillow
编写脚本
请将以下代码保存到一个文件,例如 png2ico.py
。
原始字符串: 在 Windows 路径中使用反斜杠时,通过在字符串前面添加 r
来使其成为原始字符串,避免反斜杠被解释为转义字符。
import os
from PIL import Image
def convert_png_to_multiple_ico(png_path, sizes=[16, 32, 48, 64, 128, 256]):
"""
将 PNG 图像转换为多个尺寸的 ICO 图标,并将它们保存在 /ico 文件夹中。如果文件夹不存在,则创建它。
:param png_path: PNG 图像的路径。
:param sizes: ICO 图标需要包含的尺寸,默认为 16, 32, 48, 64, 128, 256。
"""
# 获取文件名和扩展名
filename = os.path.splitext(os.path.basename(png_path))[0]
# 目标文件夹路径
ico_folder = os.path.join(os.path.dirname(png_path), 'ico')
# 如果目标文件夹不存在,则创建它
if not os.path.exists(ico_folder):
os.makedirs(ico_folder)
try:
# 打开 PNG 图像
img = Image.open(png_path)
except FileNotFoundError:
print(f"找不到文件: {png_path}")
return
except Exception as e:
print(f"打开文件时出错: {e}")
return
# 生成并保存多个尺寸的 ICO 图标
for size in sizes:
# 调整图像大小
resized_img = img.resize((size, size), Image.LANCZOS)
# 生成 ICO 文件路径
ico_path = os.path.join(ico_folder, f'{filename}_{size}x{size}.ico')
# 保存 ICO 文件
resized_img.save(ico_path, format='ICO')
print(f"转换成功! {size}x{size} 尺寸的 ICO 图标已保存到: {ico_path}")
if __name__ == "__main__":
png_path = input("请输入 PNG 图片的路径: ")
convert_png_to_multiple_ico(png_path)
input("按任意键关闭程序...")
运行
在终端或双击运行:
python png2ico.py
这样,输入PNG 图片地址, PNG 图片会被转换成多个不同尺寸的 ICO 文件,并储存在 /ico
文件夹中,每个尺寸会生成一个单独的 ICO 文件。