基于PythonMagick实现png、jpg批量转ico
基于PythonMagick实现png、jpg批量转ico
写在前面
做这件事的原因:
- 下了一堆png图标
- 想批量转为ico格式的,然后给文件夹用
使用方式:
if __name__ == '__main__':pi = PNG2ICO(r'E:\resources\ico', r'E:\resources\ico_output_by_python')pi.walk_files()'''单个文件测试'''# PNG2ICO.png2ico(r'E:\resources\ico\基础多色\chenggong.png', '13.ico')
- 生成类对象,传入的参数由两个:
- 有png或其他格式图片的文件夹路径(该路径下的子文件夹中的图片也能识别)
- 输出路径
- 调用类对象的
walk_files()
函数实现 - 如果想单独对一个文件进行测试的话,可以参考下面的 单个文件测试
- 生成类对象,传入的参数由两个:
代码实战
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# coding=utf-8 """
@author: Li Tian
@contact: litian_cup@163.com
@software: pycharm
@file: png2ico.py
@time: 2021/6/2 10:21
@desc: png转ico工具
"""from dataclasses import dataclass
import PythonMagick
import os@dataclass
class PNG2ICO:root_path: stroutput_path: strdef __post_init__(self):# output路径检测,没有就创建self.check_path_exists(self.output_path)@staticmethoddef check_path_exists(path):if not os.path.exists(path):os.makedirs(path)@staticmethoddef png2ico(file_path, output_path, default_size='256x256'):""":param file_path: 目标文件夹路径:param output_path: 输出文件夹路径:param default_size: 默认生成的大小:return:"""im = PythonMagick.Image(file_path)im.sample(default_size)im.write(output_path)def walk_files(self):for root, dirs, files in os.walk(self.root_path, topdown=True):for file in files:# print(self.output_path, self.root_path, root, os.path.splitext(file))file_path = os.path.join(root, file)output_path = os.path.join(root.replace(self.root_path, self.output_path))# 检查子路径是否存在self.check_path_exists(output_path)output_file_path = os.path.join(output_path, os.path.splitext(file)[0] + '.ico')self.png2ico(file_path, output_file_path)if __name__ == '__main__':pi = PNG2ICO(r'E:\resources\ico', r'E:\resources\ico_output_by_python')pi.walk_files()'''单个文件测试'''# PNG2ICO.png2ico(r'E:\resources\ico\基础多色\chenggong.png', '13.ico')
- ☁️ 我的CSDN:https://blog.csdn.net/qq_21579045
- ❄️ 我的博客园:https://www.cnblogs.com/lyjun/
- ☀️ 我的Github:https://github.com/TinyHandsome
-
基于PythonMagick实现png、jpg批量转ico相关推荐
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别...
篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别
篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...
- lisp写标高线_基于Autolisp语言的等高线批量赋标高程序
基于 Autolisp 语言的等高线批量赋标高程序 于全景,李兆爽,张红松(中国中材国际工程股份有限公司(南京) ,江苏南京 211100 ) [摘 要] 在总图设计对等高线赋标高时,设计人员需在特性 ...
- android如何实现批量删除操作,Android 基于聊天页面如何实现批量转发和批量删除...
Android 基于聊天页面如何实现批量转发和批量删除继承 ConversationFragment 类,重写 showMoreClickItem 并返回 true . 重写 getMoreClick ...
- Svg批量转ico软件离线操作转换使用教程
Svg批量转ico软件是应广大用户要求研发一款可以离线将多个Svg矢量图转换成ico图标格式,先看截图 使用方法如下: (1)将含有svg格式文件的文件夹拖拽到列表,软件自动识别导入列表 (2)设置分 ...
- 基于Auto.js的支付宝批量自动转账脚本
基于Auto.js的支付宝批量自动转账脚本 这是一个能够实现支付宝多账号自动转账脚本,可以自动给多个指定用户自动转账,非商家用户不能申请支付宝的支付Api,另辟蹊径,使用Auto.js模拟手动操作支付 ...
- 批量处理|基于ENVI的遥感影像批量裁剪工具
遥感影像裁剪的目的是将研究之外的区域去除,常用的方法是按照行政区划边界或者自然区划边界进行影像裁剪,在基础数据生产中,还经常要进行标准分幅裁剪. ENVI软件支持规则裁剪(矩形范围)和不规则裁剪(任意 ...
- Volcano架构解读:基于Kubernetes的云原生批量计算平台
Volcano是一个基于Kubernetes的云原生批量计算平台,也是CNCF的首个批量计算项目. Volcano 主要用于AI.大数据.基因.渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支 ...
- 基于信封套打以及批量打印的实现过程
最近需要向客户发送一些宣传资料,Excel列表里面有一两百个记录,本来想手写就算了,估摸着也花不了多少时间,不过写完一个信封我就后悔了,整天敲着键盘,书写的字太难看了,而且感觉手还是有点累.才第一个啊 ...
最新文章
- React 组件生命周期
- qt 拖拽 修改大小(二)
- 退市35年后,牛仔裤品牌李维斯要重新IPO了
- 2021-04-28 Python可视化图表生成-Matplotlib绘图
- 二叉树路径应用举例(基于非递归后序遍历)
- 小程序返回上一页_智能小程序档案馆手把手教你成为小程序流量头号玩家(上)...
- java 进制转换 十进制转二,八,十六进制
- 安卓 usb音量调节_戴尔推出面向Teams和Zoom视频通话的USB-C免提适配器
- 【SpringMVC学习07】SpringMVC中的统一异常处理
- python爬取网页上的特定链接_自学python爬虫二:如何正常操作urllib2通过指定的URL抓取网页内容...
- JavaScript学习(九十二)—关联数组的基本操作
- PyTorch大更新!谷歌出手帮助开发,正式支持TensorBoard | 附5大开源项目
- 使用Canvas基于手势可以使树秋千
- springboot过滤器配置
- Chrome插件开发练习 - 还未完成
- 我热爱计算机作文450字,热爱音乐的我作文450字
- 动画:从 AE 到 Web
- truelicense使用手册
- 5个球放入3个箱子_排列组合问题,把5个相同的球放到三个相同的盒子里,要求每个盒子都有球,则不同的放球方法是多少?...
- Python读取CSV文件画折线图
热门文章
- 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇二:基于OneNote难点突破和批量识别...