Python实现批量压缩图片

yipeiwu_com6年前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对象是否可调用的三种方式及其区别详解

查找资料,基本上判断python对象是否为可调用的函数,有三种方法 使用内置的callable函数 callable(func) 用于检查对象是否可调用,返回True也可能调用失败...

关于sys.stdout和print的区别详解

关于sys.stdout和print的区别详解

一、sys.stdout的形式就是print的一种默认输出格式,等于print "%VALUE%" print函数是对sys.stdout的高级封装,看下print函数的解释 Pri...

python操作redis的方法

本文实例讲述了python操作redis的方法。分享给大家供大家参考。具体如下: #!/usr/bin/python #coding=utf-8 import redis class...

Python 序列的方法总结

      最近在做Python 的项目,特地整理了下 Python 序列的方法。序列sequence是python中最基本的数据结构,...

Pandas-Cookbook 时间戳处理方式

# -*-coding:utf-8-*- # by kevinelstri # 2017.2.17 # ----------...