png转换为icon

12 2025-09-03 14:27

import os
from PIL import Image

def create_directory(path):
    """创建目录(如果不存在)"""
    if not os.path.exists(path):
        os.makedirs(path)
        print(f"创建目录:{path}")
    else:
        print(f"目录已存在:{path}")

def png_to_icon(png_path, icon_path, sizes=(64, 64)):
    """将单个 PNG 文件转换为 ICO 文件"""
    try:
        img = Image.open(png_path)
        img.save(icon_path, format="ICO", sizes=[sizes])
        print(f"成功将 {png_path} 转换为 {icon_path}")
    except Exception as e:
        print(f"转换失败:{png_path} -> {e}")

def batch_convert_png_to_icon(png_folder, icon_folder):
    """批量转换 PNG 文件夹中的所有 PNG 文件"""
    # 创建目标文件夹
    create_directory(icon_folder)

    # 遍历 PNG 文件夹中的所有文件
    for filename in os.listdir(png_folder):
        if filename.lower().endswith(".png"):
            png_path = os.path.join(png_folder, filename)
            # 构造 ICO 文件路径
            icon_filename = os.path.splitext(filename)[0] + ".ico"
            icon_path = os.path.join(icon_folder, icon_filename)
            # 转换 PNG 到 ICO
            png_to_icon(png_path, icon_path)

    print("批量转换完成!")

# 主程序
if __name__ == "__main__":
    png_folder = "png"  # PNG 文件夹路径
    icon_folder = "icon"  # ICO 文件夹路径

    # 检查 PNG 文件夹是否存在
    if not os.path.exists(png_folder):
        print(f"错误:目录 {png_folder} 不存在,请确保该目录存在且包含 PNG 文件。")
    else:
        batch_convert_png_to_icon(png_folder, icon_folder)

 

全部评论

·