利用Python进行博客图片压缩

自己写博客的时候常常要插入一些手机拍的照片,都是几M的大小,每张手动压缩太费事了,于是根据自己博客的排版特点用Python写了一个简单的图片压缩脚本,功能是将博客图片生成缩略图,横屏的图片压缩为宽度最大1280像素,竖屏的图片压缩为宽度最大1000像素。

代码如下:

#!/usr/bin/env python3  

# coding=utf-8

' 蒋方正Python函数库 '

__author__ = 'Sandeepin'



import math

import os

from PIL import Image



# 功能:博客图片生成缩略图,1280横屏压缩,1000竖屏压缩

# 参数:图片名称

# 返回:OK,保存同名文件在thumb目录下

def JfzBlogImgThumb(ImgName):

    im = Image.open(ImgName)

    print('格式',im.format, ',分辨率',im.size, ',色彩',im.mode)

    if max(im.size[0], im.size[1]) > 1000:

        if im.size[0] > im.size[1]:

            im.thumbnail((1280, 1280))

        else:

            im.thumbnail((1000, 1000))

        if ImgName.endswith('.JPG'):

            ImgName = ImgName.replace('.JPG','.jpg')

        if ImgName.endswith('.png'):

            ImgName = ImgName.replace('.png','.jpg')

        if ImgName.endswith('.PNG'):

            ImgName = ImgName.replace('.PNG','.jpg')

        im.save('thumb\\'+ImgName, 'JPEG', quality=90)

    #if max(im.size[0], im.size[1]) <= 1000:

    #    im.save('thumb\\'+ImgName, 'JPEG', quality=100)

    return 'OK'



# JfzBlogImgThumb('1.jpg')

# JfzBlogImgThumb('2.jpg')



# 列出当前目录所有jpg文件

lst=os.listdir(os.getcwd())

imgname = [c for c in lst if os.path.isfile(c) and (c.endswith('.jpg') or c.endswith('.JPG') or c.endswith('.png') or c.endswith('.PNG'))]

print(imgname)



# 全处理

OutCheck = map(JfzBlogImgThumb,imgname)

print(list(OutCheck))