推荐使用代码三,来批量修图片尺寸,是根据宽度和高度,进行约束比修改图片尺寸的,如设定图片宽度为600*高度600,当图片宽度大于600时进行缩减到600px,图片高度按约束比来,当图片高度大于600时,宽度按约束比来。
代码一:
#PIL已更名为pillow输入 pip3 install pillow进行安装,如果执行代码报错则执行pip3 uninstall pillow 在重新安装。
import os
from PIL import Image
def image_processing():
# 待处理图片路径下的所有文件名字
all_file_names = os.listdir('C:\\Users\\Administrator\\Desktop\\修改前')
for file_name in all_file_names:
# 待处理图片路径
img_path = Image.open(f'C:\\Users\\Administrator\\Desktop\\修改前\\{file_name}')
# resize图片大小,入口参数为一个tuple,新的图片的大小
img_size = img_path.resize((520, 520))
# 处理图片后存储路径,以及存储格式
img_size.save(f'C:\\Users\\Administrator\\Desktop\\修改后\\{file_name}', 'png')
if __name__ == '__main__':
image_processing()
代码二:
import os
import time
from PIL import Image
def alter(path,object):
s = os.listdir(path)
count = 1
for i in s:
document = os.path.join(path,i)
img = Image.open(document)
out = img.resize((600,600))
listStr = [str(int(time.time())), str(count)]
fileName = ''.join(listStr)
out.save(object+os.sep+'%s.jpg' % fileName)
#这里和第一个例子一样,如果设置为jpg 只能修改少部份图片,改成png则没有问题。
count = count + 1
alter('C:\\Users\\Administrator\\Desktop\\修改前','C:\\Users\\Administrator\\Desktop\\修改后')
代码三(推荐):
import os
from PIL import Image
# 源目录
project_dir = os.path.dirname(os.path.abspath(__file__))
input = os.path.join(project_dir, 'src')
# 输出目录
output = os.path.join(project_dir, 'dest')
def modify():
# 切换目录
os.chdir(input)
# 遍历目录下所有的文件
for image_name in os.listdir(os.getcwd()):
print(image_name)
im = Image.open(os.path.join(input, image_name))
im.thumbnail((600, 600))
im.save(os.path.join(output, image_name))
if __name__ == '__main__':
modify()
注:
1、如果上面参数为jpg 则只能修改少部份图片,参考文献:https://blog.csdn.net/vivian7fan/article/details/125613888
2、路径C:\\Users\\Administrator\\Desktop\\修改前,使用windows系统变量 %homepath%\\桌面\\修改前,报错,未解决。
微信登录 下载 是编译好的exe,独立环境可以直接使用
完美源码 » python 批量修改图片尺寸