#coding:utf-8
from PIL import Image
import os
#图片压缩批处理
def compressImage(srcPath,dstPath):
for filename in os.listdir(srcPath):
print(filename)
if filename == ".DS_Store":
continue
#如果不存在目的目录则创建一个,保持层级结构
if not os.path.exists(dstPath):
os.makedirs(dstPath)
#拼接完整的文件或文件夹路径
srcFile=os.path.join(srcPath,filename)
dstFile=os.path.join(dstPath,filename)
print(srcFile)
print(dstFile)
#如果是文件就处理
if os.path.isfile(srcFile):
#打开原图片缩小后保存,可以用if srcFile.endswith(".jpg")或者split,splitext等函数等针对特定文件压缩
sImg=Image.open(srcFile)
dImg=sImg.resize((1000,1500),Image.ANTIALIAS) #设置压缩尺寸和选项,注意尺寸要用括号
dImg.save(dstFile) #也可以用srcFile原路径保存,或者更改后缀保存,save这个函数后面可以加压缩编码选项JPEG之类的
print(dstFile+" compressed succeeded")
#如果是文件夹就递归
if os.path.isdir(srcFile):
compressImage(srcFile,dstFile)
if __name__=='__main__':
compressImage("./照片jpg","./dst")
使用Image库将图片压缩到(1000,1500)像素的图片
import os
import shutil
from PIL import Image
def getAllFiles(dirName, houzhui=' '):
results = []
for file in os.listdir(dirName):
file_path = os.path.join(dirName, file)
if houzhui == ' ':
if os.path.isfile(file_path):
results.append([file_path, os.path.splitext(file)[0]])
else:
if os.path.isfile(file_path) and os.path.splitext(file_path)[1] == houzhui:
results.append([file_path,os.path.splitext(file)[0]])
return results
if __name__ == '__main__':
files = getAllFiles('./dst/','.jpg')
# print(files)
for file in files:
fileName = file[0]
fileShortName = file[1]
saveFileName = './bmp/'+fileShortName+'.bmp'
print(fileShortName)
Image.open(fileName).save(saveFileName)
将压缩后的图片转为bmp格式.核心函数为Image.open().save()
批量压缩与转换图片格式:PIL库实战
本文介绍了如何利用Python的PIL库进行图片批量压缩,将图片尺寸限制在1000x1500像素,并进一步转换为bmp格式。主要涉及的关键操作是Image.open()和Image.save()函数的应用。
2237

被折叠的 条评论
为什么被折叠?



