PNG图片转icon图标Python脚本(简易版) - 随笔
摘要
在网站开发或应用程序设计中,常需将高品质PNG图像转换为ICO格式图标。本文提供一份高效Python解决方案,利用Pillow库实现透明背景完美保留的格式转换。
源码示例
from PIL import Imagedef convert_png_to_ico(png_path, ico_path, size):"""透明通道PNG转ICO格式核心函数Args:原图路径 (str): 透明背景PNG文件路径(如:'logo.png')图标路径 (str): 输出ICO文件路径(如:'favicon.ico')尺寸 (tuple): 图标分辨率,推荐(256,256)或(128,128)"""try:# Load the PNG imageimage = Image.open(png_path)# Resize the image to the specified sizeimage = image.resize(size, Image.ANTIALIAS)# Save the resized image as an ICO fileimage.save(ico_path, format='ICO')print(f"Successfully converted {png_path} to {ico_path}")except Exception as e:print(f"An error occurred: {e}")# 示例
png_file = 'Path/to/your/png_img.png' # 替换为你的PNG图片路径ico_file = r'Path/to/your/ico_file.ico' # 替换为你想保存的ICO文件路径
desired_size = (256, 256) # 设置你想要的图标大小,例如256x256像素convert_png_to_ico(png_file, ico_file, desired_size)
技术细节解析
透明通道继承: Pillow库在格式转换时自动保留PNG的Alpha通道,无需额外代码处理半透明像素。
抗锯齿优化: 采用Image.LANCZOS重采样算法(替代旧版ANTIALIAS),使图标边缘更平滑。
多尺寸适配: 通过sizes参数可一次性生成多个分辨率图标,适配Windows任务栏/文件列表等不同场景。