使用Python对图片大小进行批处理

在日常生活中,我们经常会遇到需要对大量图片的大小进行批处理的场景(例如本博客上传图片大小的限定在2Mb之下)。因此有必要使用到图片批处理的软件,但互联网上的图片大小批软件动辄会附带一堆软件(可能含有病毒),其实,使用Python就可以很方便的解决该问题,现附Python程序如下:

# -*- coding: utf-8 -*-
"""
Created on Sun Jun 3 10:52:13 2022

@author: zhangfan
"""

'''引入必要的模块'''
from PIL import Image
import os,time

'''读取当前文件夹下的所有图片文件'''
File=os.listdir(".")
Result=[]

ImgType=["jpg","jpeg","png","bmp","gif","JPG","JPEG","BMP","GIF"]  #要识别的图片类型

"""读取图片文件地址"""
for file in File:
    for _type in ImgType:
        if _type in file :
            Result.append(file)

def Resize():

    '''用户输入参数读取'''     
    mode=input("定宽度批处理请输入0,定高度批处理请输入1(默认为定宽处理)!\n>>")
    Size=input("请输入图片限定值大小(默认为1000)!\n>>")

    '''如果采用默认设置'''
    if mode == "":
        mode="0"
    if Size == "":
        Size="1000"

    '''新建一个保存修改后图片的文件夹'''
    if not os.path.exists(".\\处理完的图片"):
        os.makedirs(".\\处理完的图片")  

    for img in Result:
        outfile = ".\\处理完的图片\\"+ img.split(".")[0] +".png"
        im = Image.open(img)
        (x,y) = im.size #read image size
        if int(mode)==1 :   #定高度模式
            Y=int(Size)
            X=int(x*Y/y)
        else:     #定宽度模式
            X=int(Size)
            Y=int(y*X/x)
        out = im.resize((X,Y),Image.ANTIALIAS) #resize image with high-quality
        out.save(outfile)   #保存修改后的图片
        os.remove(img)  #删除原图片,请注意备份

print("识别到 ",len(Result)," 张图片!")

if len(Result)>0:
    Resize()
else:
    time.sleep(3)
转载请说明文章来源,文章作者:auroraus,原文章地址:http://www.auroraus.cn/2022/06/113
THE END
分享
二维码
打赏
海报
使用Python对图片大小进行批处理
在日常生活中,我们经常会遇到需要对大量图片的大小进行批处理的场景(例如本博客上传图片大小的限定在2Mb之下)。因此有必要使用到图片批处理的软件,但互联……
<<上一篇
下一篇>>
文章目录
关闭
目 录