Python 批量 png 转 ico

一、前言:

首先说一下ico文件的作用:icowindows的图标文件格式,可以用于浏览器首段图标显示,也可以用于Windows软件。我的话一般用来美化文件夹图标。比如像这样:

二、思路:

  1. ico文件的标准:

    ico文件必须是正方形的。

    可以做一个实验:网上随便找一个正方形的文件,后缀改成ico也是可以成功的。

    常用的大小:256*256

  2. png图标的下载网站:Iconfont-阿里巴巴矢量图标库

  3. 可以处理图片的Python库:pillow

    安装方法:pip install pillow

三、代码:

import os
# PIL : Python Imaging Library
from PIL import Image # 获取目录下文件名
files = os.listdir()
# 图标大小
size = (256,256) # 给图标文件单独创建一个icon目录
if not os.path.exists('icon'):
os.mkdir('icon') for inName in files:
# 分离文件名与扩展名
tmp = os.path.splitext(inName)
# 因为python文件跟图片在同目录,所以需要判断一下
if tmp[1] == '.png':
outName = tmp[0] + '.ico'
# 打开图片并设置大小
im = Image.open(inName).resize(size)
try:
# 图标文件保存至icon目录
path = os.path.join('icon', outName)
im.save(path) print('{} --> {}'.format(inName, outName))
except IOError:
print('connot convert :',inName)

执行结果:

四、资料:

  1. ICO(Windows的图标文件格式)_百度百科 (baidu.com)

  2. Python批量转换png图片为ico_北巷的猫-CSDN博客

Python批量 png转ico的更多相关文章

  1. python批量进行文件修改操作

    python批量修改文件扩展名 在网上下载了一些文件,因为某种原因,扩展名多了一个后缀'.xxx',手动修改的话因为文件太多,改起来费时费力,于是决定写个小脚本进行修改. 1.要点: import r ...

  2. Python批量修改文本文件内容

    Python批量替换文件内容,支持嵌套文件夹 import os path="./" for root,dirs,files in os.walk(path): for name ...

  3. python批量修改linux主机密码

    +++++++++++++++++++++++++++++++++++++++++++标题:python批量修改Linux服务器密码时间:2019年2月24日内容:基于python实现批量修改linu ...

  4. 用python批量向数据库(MySQL)中导入数据

    用python批量向数据库(MySQL)中导入数据 现有数十万条数据,如下的经过打乱处理过的数据进行导入 数据库内部的表格的数据格式如下与下面的表格结构相同 Current database: pyt ...

  5. python批量给云主机配置安全组

    python批量给云主机配置安全组 用公有云的思路去思考去实现一个安全稳定.可伸缩和经济的业务构架,云运维是有别与传统运维的,比如说了解公有云的都知道安全组的概念,安全组跟防火墙功能很相似,那我的机器 ...

  6. 用Python批量下载DACC的MODIS数据

    本人初次尝试用Python批量下载DACC的MODIS数据,记下步骤,提醒自己,数据还在下载,成功是否未知,等待结果中...... 若有大佬发现步骤有不对之处,望指出,不胜感激. 1.下载Python ...

  7. Python批量修改图片格式和尺寸

    Python批量修改图片格式和尺寸 备注: 1.导入了PIL库,是处理图片用的,很强大; 2.导入了的win32库,是判断隐藏文件用的,我们的项目需要删除隐藏文件,不需要的可以直接找到删除. 3.导入 ...

  8. tinypng的python批量压缩图片功能

    tinypng网站提供的图片压缩功能很不错,但是直接在网站上压缩有限制,大量压缩图片时比较麻烦,还好官方提供了很多脚本的自动化压缩接口.下面简单说下python批量压缩步骤. 1.申请api key ...

  9. Python批量复制和重命名文件

    Python批量复制和重命名文件 示例代码 #! /usr/bin/env python # coding=utf-8 import os import shutil import time impo ...

随机推荐

  1. Sql Server 数据把列根据指定的内容拆分数据

    今天由于工作需要,需要把数据把列根据指定的内容拆分数据 其中一条数据实例 select id , XXXX FROM BIZ_PAPER where  id ='4af210ec675927fa016 ...

  2. 职场PUA,管理者的五宗罪

    在目前的社会环境下,程序员似乎成了"弱势群体".我们经常谈论的职场PUA已经成为程序员的代名词. 我一直在想,为什么这么多管理者能力会这么差. 但最后最吃亏的还是可怜的程序员. 也 ...

  3. angular8 大地老师学习笔记

    第一课: angular 创建项目命令: ng new 项目名称 创建组件: ng g 可查看所有创建的对象  ,ng g component  components/home  创建组件,后面跟的是 ...

  4. 磁盘配额,通过ManagementClass("Win32_DiskQuota")

    C# using System; using System.Collections.Generic; using System.Management; namespace ConsoleApp2 { ...

  5. [UWP] - 用Json格式来发送一个Post请求到WCF服务

    测试实体类:(需要在客户端和服务端建了有相同字段名称的实体) public class CompositeType { public CompositeType() { SubCompositeTyp ...

  6. ML.net重新训练模型需要注意的事项。

    ml.net是微软机器学习的东西,如果你的需求是需要一个固定的模型来进行操作的话那就按着官网的教程来就可以,但是大部分的模型可能不满足现有的需求,那么我们需要对模型进行重新训练. 重新训练模型有限制条 ...

  7. 为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector

    注:本系列文章中用到的jdk版本均为java8 相比很多同学在刚接触Java集合的时候,线程安全的List用的一定是Vector.但是现在用到的线程安全的List一般都会用CopyOnWriteArr ...

  8. easyui中权限分配和添加 前后端代码

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. [LeetCode]实现数学计算

    乘方 思路是:pow(x,n) = pow(x,n/2)*pow(x,n-n/2) 递归实现 public double myPow(double x, int n) { if (n==0) retu ...

  10. Java IO流 FileOutputStream、FileInputStream的用法   

    FileOutputStream.FileInputStream的使用 FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件.FileOutputStre ...