标签分类 技术文章:
当前位置:首页 > Python技术文章 > Python实现批量压缩图片

Python批量压缩图片的实例代码

  • 发布时间:
  • 作者:码农之家原创
  • 点击:194

这篇文章主要知识点是关于Python、批量、压缩图片、实例代码、python利用Guetzli批量压缩图片 的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python Docker实战
  • 类型:Docker大小:2.9 MB格式:PDF出版:清华大学出版社作者:萨蒂亚吉斯·巴哈
立即下载

更多Python相关的学习资源可以参阅 Python电子书程序设计电子书 等栏目。

Python实现批量压缩图片

本文为大家分享了Python实现批量压缩图片的具体代码,供大家参考,具体内容如下

# -*- coding: utf-8 -*- 
""" 
__author__= 'Du' 
__creation_time__= '2018/1/5 10:06' 
""" 
 
import os 
from PIL import Image 
import glob 
 
DIR = 'C:/Users/Public/Pictures/Sample Pictures/' 
 
class Compress_Picture(object): 
  def __init__(self): 
    # 图片格式,可以换成.bpm等 
    self.file = '.jpg' 
 
  # 图片压缩批处理 
  def compressImage(self): 
    for filename in glob.glob('%s%s%s' % (DIR, '*', self.file)): 
      # print(filename) 
      # 打开原图片压缩 
      sImg = Image.open(filename) 
      w, h = sImg.size 
      print(w, h) 
      dImg = sImg.resize((200, 200), Image.ANTIALIAS) # 设置压缩尺寸和选项,注意尺寸要用括号 
 
      # 如果不存在目的目录则创建一个 
      comdic = "%scompress/"%DIR 
      if not os.path.exists(comdic): 
        os.makedirs(comdic) 
 
      # 压缩图片路径名称 
      f1 = filename.split('/') 
      f1 = f1[-1].split('\\') 
      f2 = f1[-1].split('.') 
      f2 = '%s%s1%s'%(comdic, f2[0], self.file) 
      # print(f2) 
      dImg.save(f2) # save这个函数后面可以加压缩编码选项JPEG之类的 
      print("%s compressed succeeded"%f1[-1]) 
 
 
if __name__ == "__main__": 
  obj = Compress_Picture() 
  obj.compressImage() 

效果图:

Python实现批量压缩图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

python利用Guetzli批量压缩图片

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

今天玩了下谷歌的开源图片压缩工具Guetzli,发现单张图片压缩效果还是不错的,就写了个简单的python脚本,批量压缩图片

前提条件

1.安装好Guetzli,可以使用命令行工具

2.python环境

简单的代码

# -*- coding: utf-8 -*-

import os

dir_name = "你选择的图片文件夹"


def get_file_name(file_dir):
  for root, dirs, files in os.walk(file_dir):
    print(root)
    # print(dirs)
    # print(files)
  return files


files = get_file_name(dir_name)
print(files)
os.chdir(dir_name)
for file in files:
  cmd = "guetzli --quality 85 --verbose " + file + " " + file
  os.system(cmd)

效果

压缩之前

python利用Guetzli批量压缩图片

压缩后

python利用Guetzli批量压缩图片

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Python的全部知识点内容总结,大家还可以在下方相关文章里找到python测试opencv时imread导致、 python ddt数据驱动实例代码、 如何由java转学python、 等python文章进一步学习,感谢大家的阅读和支持。

上一篇:PyTorch线性回归和逻辑回归的相关实例知识点

下一篇:python fabric实现远程部署实例详解

展开 +

收起 -

学习笔记
网友NO.128564

python定时按日期备份MySQL数据并压缩

本文实例为大家分享了python定时按日期备份MySQL数据并压缩的具体代码,供大家参考,具体内容如下 #-*- coding:utf-8 -*- import osimport timeimport tarfileimport zipfile '''mysqldumpUsage: mysqldump [OPTIONS] database [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]OR mysqldump [OPTIONS] --all-databases [OPTIONS]For more options, use mysqldump --help'''db_host="localhost"db_user="root"db_passwd="root"db_name="crm"db_charset="utf8"db_backup_name=r"c:\crm_%s.sql" %(time.strftime("%Y%m%d%H%M")) zip_src = db_backup_namezip_dest = zip_src + ".zip" def zip_files(): f = zipfile.ZipFile(zip_dest, 'w' ,zipfile.ZIP_DEFLATED) f.write(zip_src) f.close() if __name__ == "__main__": print("begin to dump mysql database crm..."); os.system("mysqldump -h%s -u%s -p%s %s --default_character-set=%s %s" %(db_host, db_user, db_passwd, db_name, db_charset, db_backup_name)) print("begin zip files...") zip_files() print("done, pyhon is great!") 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。 ……

网友NO.875662

python中将zip压缩包转为gz.tar的方法

由于同事电脑上没有直接可以压缩gz.tar格式的压缩软件,而工作中这个又时常需要将zip文件转换为gz.tar格式,所以常常将压缩为zip格式的文件发给我来重新压缩成gz.tar格式发给他,能偷懒就不想动手,就用python的tarfile和zipfile包完成了一个将zip转换成gz.tar格式的小脚本: 代码比较简单,也就几行,但是写的时候因为绝对路径的问题浪费了点时间,代码水平还是有待提高。 #coding: utf-8import osimport tarfileimport zipfiledef zip2tar(root_path, name,to_name='test'): ''' root_path: 压缩文件所在根目录 name: 压缩文件名字(zip格式) ''' #root_path = r'C:\Users\Administrator\Desktop\somefiles' #file_path = os.path.join(root_path, 'somemodel.zip') file_path = os.path.join(root_path, name+'.zip') with zipfile.ZipFile(file_path, 'r') as zzip: with tarfile.open(os.path.join(root_path, to_name+'.gz.tar'), 'w') as ttar: for ffile in zzip.namelist(): if not os.path.isdir(ffile): #if not ffile.strip().endswith(r'/'): zzip.extract(ffile, root_path) ttar.add(os.path.join(root_path,ffile), arcname=ffile)if __name__ == '__main__': root_path = raw_input(u'input root path: ') name = raw_input(u'input the zip name(without .zip): ') zip2tar(root_path, name) 以上这篇python中将zip压缩包转为gz.tar的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.849130

python实现图片批量压缩程序

本文实例为大家分享了python实现图片批量压缩程序的具体代码,供大家参考,具体内容如下 说明 运行环境:Win10 Pycharm 程序没有用到面向对象编程方法,只是简单的面向过程设计 用到的模块:PIL、os、sys 使用方法: 在Pycharm的terminal中输入”python xxx.py source_dir dest_dir”就可以把source_dir中的图片文件进行压缩并保存到dest_dir中 源码 from PIL import Imageimport osimport sys# 定义可以识别的图片文件类型,可以自行扩充valid_file_type = ['.jpg', '.png']# 定义压缩比,数值越大,压缩越小SIZE_normal = 1.0SIZE_small = 1.5SIZE_more_small = 2.0def make_directory(directory): """创建目录""" os.makedirs(directory)def directory_exists(directory): """判断目录是否存在""" if os.path.exists(directory): return True else: return Falsedef list_img_file(directory): """列出目录下所有文件,并筛选出图片文件列表返回""" old_list = os.listdir(directory) # print old_list new_list = [] for filename in old_list: if os.path.isfile(filename): f, e = os.path.splitext(filename) if e in valid_file_type: new_list.append(filename) else: pass else: pass # print new_list return new_listdef print_help(): print """ This program helps compress many image files you can choose which scale you want to compress your img(jpg/png/etc) 1) normal compress(4M to 1M around) 2) small compress(4M to 500K around) 3) smaller compress(4M to 300K around) """def compres……

网友NO.750967

python怎么破解压缩包密码

基本原理在于Python标准库zipfile和扩展库unrar提供的解压缩方法extractall()可以指定密码,这样的话首先(手动或用程序)生成一个字典,然后依次尝试其中的密码,如果能够正常解压缩则表示密码正确。 import osimport sys#zipfile是Python标准库import zipfile#尝试导入扩展库unrar,如果没有就临时安装try: from unrar import rarfileexcept: path = ''+os.path.dirname(sys.executable)+'\\scripts\\pip install --upgrade pip' os.system(path) path = ''+os.path.dirname(sys.executable)+'\\scripts\\pip install unrar' os.system(path) from unrar import rarfiledef decryptRarZipFile(filename): #根据文件扩展名,使用不同的库 if filename.endswith('.zip'): fp = zipfile.ZipFile(filename) elif filename.endswith('.rar'): fp = rarfile.RarFile(filename) #解压缩的目标文件夹 desPath = filename[:-4] if not os.path.exists(desPath): os.mkdir(desPath) #先尝试不用密码解压缩,如果成功则表示压缩文件没有密码 try: fp.extractall(desPath) fp.close() print('No password') return #使用密码字典进行暴力破解 except: try: fpPwd = open('pwddict.txt') except: print('No dict file pwddict.txt in current directory.') return for pwd in fpPwd: pwd = pwd.rstrip() try: if filename.endswith('.zip'): for file in fp.namelist(): #对zip文件需要重新编码再解码,避免中文乱码 fp.extract(file, path=desPath, pwd=pwd.encode()) os.rename(desPath+'\\'+file, desPath+'\\'+file.encode('cp43……

<
1
>

Copyright 2018-2019 xz577.com 码农之家

版权责任说明