龙空技术网

#003 Python批量设置图片大小

和光前行 66

前言:

当前大家对“python图片批量处理系统”大致比较讲究,朋友们都需要学习一些“python图片批量处理系统”的相关文章。那么小编同时在网上搜集了一些有关“python图片批量处理系统””的相关内容,希望朋友们能喜欢,同学们快快来了解一下吧!

一、背景

私立的托儿所,每天会给小朋友门制作一页当天的画册,都是当天老师们给小朋友拍的照片,打印出来以后,贴上去。

大概是长着这样的:

制作过程需要老师们手工去调整图片的大小以后再打印,有时候拖拉拽还可能会导致图片的比例发生变化,导致图片的小朋友人像变形。

二、看看我们能帮到老师做什么

我们可以做一个小工具,在老师们筛选好的图片的文件夹跑一次脚本就批量把所有的图片按照比例缩小。

三、解决办法3.1 思路

1.遍历所有的JPG图片

2.取图片的长宽最小来等比例缩小图片到我们制定的大小(200* 200)

3.把缩小的图片的后缀改成PNG, 区分原图。

3.2 源代码

# -*- coding: utf-8 -*-"""    @Author  : Nick    @Time    : 2023/9/03    @Comment : #003 批量调整图片的大小"""from PIL import Imageimport globimport osdef resize_image(img_name_path,max_width=1500,max_height=800):    """    等比例缩小图片,并把jpg转为png格式    :param img_name_path 图片路径    :param max_width   缩小后的最大宽度    :param max_height  缩小后的最大高度    :return:    """    #获取原始尺寸图片    image = Image.open(img_name_path)    width = image.width  #获取图片原宽度    height = image.height #获取图片原高度    #宽度和高度有任意不符合我们给定的最大值,将缩小,否则直接转为png格式    if max_width <= width or max_height <= height:        #计算缩小比例        ratio  = min(max_width/width,max_height/height)        #计算缩小后的大小        new_width = int(width * ratio)        new_height = int(height * ratio)        #使用PIL库中resize方法进行等比例缩小        resize_img = image.resize((new_width,new_height))        #保存更改之后的图片        resize_img.save(img_name_path.replace('.jpg','.png'))    else:        image.save(img_name_path.replace('.jpg', '.png'))if __name__ == '__main__':    new_size_w = 200    new_size_h = 200    #folder_path = 'D:\Lab\Python100\#003_resize_img' #替换为你的文件夹路径    folder_path = os.path.dirname(os.path.abspath(__file__)) #py所在的文件夹    file_paths = glob.glob(folder_path + '/*.jpg') #获取文件夹下所有Excel文件的路径    for file_path in file_paths:        print(file_path)        resize_image(file_path,new_size_w,new_size_h)

如果觉得思路和代码有用,或者运行代码遇到问题,请关注我!

标签: #python图片批量处理系统 #python将图片原比例缩小