利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)

前言

本文主要给大家介绍的关于Python批量压缩png的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

1.需求

为什么会有这个需求?是因为游戏的资源大多是png图片,需要压缩,但是有些图片和文件夹里的图片,美术不想压缩,比如一些带透明度的光圈或者游戏的主要元素。所以要过滤下。发现python这个语言比较适合用在这个场景。所以写了点python.

2.源码

import os,sys
import os.path
rootdir=sys.path[0]

#需要过滤的文件
notActionFile = ["choose_bg1.png"]
#需要过滤的文件夹
notActionPath = ["test"]

#需要删除的文件
needDeleteFile = ["s2.png"]

def file_extension(path):
 return os.path.splitext(path)[1] 

for parent,dirnames,filenames in os.walk(rootdir):
 for filename in filenames:
  fullPath = os.path.join(parent,filename)
  #删除文件
  for deleteFile in needDeleteFile:
   if filename == deleteFile:
    os.remove(fullPath)
  isFilter = False
  #过滤文件压缩
  for noActionName in notActionFile:
   if noActionName == filename:
    isFilter = True
  #过滤文件夹压缩
  for onePath in notActionPath:
   lastPath = fullPath.split('\\')[-2]
   if lastPath == onePath:
    isFilter = True
  if file_extension(fullPath) == ".png" and isFilter == False:
   #print "action"
   os.system("pngquant -f --ext .png --quality 50-80 \"" + fullPath + "\"")
   print fullPath

用的是pngquant来压缩。

完整项目下载地址:http://xiazai.jb51.net/201707/yuanma/compressImage(jb51.net).rar

使用方法,就是复制这2个文件到需要压缩的文件夹下面,然后执行python main.py

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持

(0)

相关推荐

  • 在Python中使用pngquant压缩png图片的教程

    说到png图片压缩,可能很多人知道TinyPNG这个网站.但PS插件要钱(虽然有破解的),Developer API要连到他服务器去,不提网络传输速度,Key也是有每月限制的.          但是貌似tinyPNG是使用了来自于 pngquant 的技术,至少在 http://pngquant.org/ 中是如此声称的:TinyPNG and Kraken.io - on-line interfaces for pngquant.如果真是这样,我很想对TinyPNG说呵呵.后者是开源的,连首

  • python利用Guetzli批量压缩图片

    Google 又开源了,这次开源了一款图像算法工具 Guetzli.Guetzli,在瑞士德语中是"cookie(曲奇)"的意思,是一个针对数码图像和网页图像的 JPEG 编码器,能够通过产生更小的 JPEG 文件来达到更快的在线体验,并且同时保持与当前浏览器,图像处理应用和 JPEG 标准的兼容性.Google 称 Guetzli 创建高质量的 JPEG 图像文件的大小比当前的压缩方法要再小 35%. 今天玩了下谷歌的开源图片压缩工具Guetzli,发现单张图片压缩效果还是不错的,就

  • 利用Python批量压缩png方法实例(支持过滤个别文件与文件夹)

    前言 本文主要给大家介绍的关于Python批量压缩png的相关资料,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 1.需求 为什么会有这个需求?是因为游戏的资源大多是png图片,需要压缩,但是有些图片和文件夹里的图片,美术不想压缩,比如一些带透明度的光圈或者游戏的主要元素.所以要过滤下.发现python这个语言比较适合用在这个场景.所以写了点python. 2.源码 import os,sys import os.path rootdir=sys.path[0] #需要过滤的文

  • 利用python批量爬取百度任意类别的图片的实现方法

    利用python批量爬取百度任意类别的图片时: (1):设置类别名字. (2):设置类别的数目,即每一类别的的图片数量. (3):编辑一个txt文件,命名为name.txt,在txt文件中输入类别,此类别即为关键字.并将txt文件与python源代码放在同一个目录下. python源代码: # -*- coding: utf-8 -*- """ Created on Sun Sep 13 21:35:34 2020 @author: ydc """

  • 利用Python批量识别电子账单数据的方法

    一.前言 有一定数量类似如下截图所示的账单,利用 Python 批量识别电子账单数据,并将数据保存到Excel. 百度智能云接口 打开https://cloud.baidu.com/,如未注册请先注册,然后登录点击管理控制台,点击左侧产品服务→人工智能→文字识别,点击创建应用,输入应用名称如Baidu_OCR,选择用途如学习办公,最后进行简单应用描述,即可点击立即创建.会出现应用列表,包括AppID.API Key.Secret Key等信息,这些稍后会用到. 二.调用Baidu aip识别 首

  • 利用Python批量导出mysql数据库表结构的操作实例

    目录 前言 解决方法 1. mysql 数据库 表信息查询 2.连接数据库代码 3.数据查询处理代码 3.0 配置信息 3.1查询数据库表 3.2 查询对应表结构 3.3 pandas进行数据保存导出excel 补充:python脚本快速生成mysql数据库结构文档 总结 前言 最近在公司售前售后同事遇到一些奇怪的需求找到我,需要提供公司一些项目数据库所有表的结构信息(字段名.类型.长度.是否主键.***.备注),虽然不是本职工作,但是作为python技能的拥有者看到这种需求还是觉得很容易的,但

  • 利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- import threading from PIL import Image image_size = range(1, 1001) def start(): for size in image_size: t = threading.Thread(target=create_image, args=(s

  • 提升python处理速度原理及方法实例

    这篇文章主要介绍了提升python处理速度原理及方法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导读:作为日常生产开发中非常实用的一门语言,python广泛应用于网络爬虫.web开发.自动化测试.数据分析和人工智能等领域.但python是单线程的,想要提升python的处理速度,涉及到一个很关键的技术--协程.本篇文章,将讲述python协程的理解与使用. 1.操作系统相关概念 在理解与使用协程之前,先简单的了解几个与操作系统相关的概念

  • 利用 Python ElementTree 生成 xml的实例

    Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree. 首先 import 之: from xml.etree import ElementTree as etree 然后开始构建 xml 树: from xml.etree.ElementTree import Element, SubElement, ElementTree # 生成根节点 root = Element('root') # 生成第一个子节点 head head =

  • MySQL实现MYISAM表批量压缩的方法

    本文实例讲述了MySQL实现MYISAM表批量压缩的方法.分享给大家供大家参考,具体如下: 关于对MYISAM表的压缩,可以使用myisampack和myisamchk完成(myisampack完之后必须进行myisamchk才能使用压缩后的表,而且是只读的), 其详细地用法可以参考官方文档: http://dev.mysql.com/doc/refman/5.1/zh/client-side-scripts.html. 这两个操作需要谨慎使用,在压缩之前需要确认mysqld已关闭或者要压缩的表

  • Python比较配置文件的方法实例详解

    工作中最常见的配置文件有四种:普通key=value的配置文件.Json格式的配置文件.HTML格式的配置文件以及YMAML配置文件. 这其中以第一种居多,后三种在成熟的开源产品中较为常见,本文只针对第一种配置文件. 一般来说Linux shell下提供了diff命令来比较普通文本类的配置文件,Python的difflib也提供了str和HTML的比较接口,但是实际项目中这些工具其实并不好用,主要是因为我们的配置文件并不是标准化统一化的. 为了解决此类问题,最好针对特定的项目写特定的配置文件比较

  • Python字符串的修改方法实例

    这篇文章主要介绍了Python字符串的修改方法实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们在修改字符串时 通常遇到报错: TypeError: 'str' object does not support item assignment 在Python中,字符串是不可变类型,即无法直接修改字符串的某一位字符. 因此改变一个字符串的元素需要新建一个新的字符串. 常见的修改方法有以几种: 方法1:将字符串转换成列表后修改值,然后用join

随机推荐