怎样快速的批量把图片对半切开

今天接到一个需求,客户做了一本宣传册,需要左右对半切开然后添加到他们的网站上,大概有100多页,做为一个会点python代码的程序员(偷笑),废话不多说直接上代码:

使用了`Pillow`图片处理库,没有安装先安装一下:

pip install Pillow
from PIL import Image
import os

#图片文件夹
images_dir = 'images'

def split_image(img_url):
    #打开图片:
    img = Image.open(img_url)

    file_name = os.path.basename(img_url) #文件名称
    file_name = os.path.splitext(file_name)[0] #不带扩展名的文件名称

    #获取图片的宽度和高度,并计算出左右两半的坐标:
    width,height = img.size
    left = (0, 0, width //2, height)
    right = (width//2, 0, width, height)

    #使用crop方法来切割图片,并保存为新的文件:
    img_left = img.crop(left)
    img_right = img.crop(right)
    img_left.save(file_name + '_left.jpg')
    img_right.save(file_name + '_right.jpg')

    #缩放图片,并保持高度自适应:
    new_width = 1000
    left_width, left_height = img_left.size
    right_width, right_height = img_right.size
    left_new_height = int(left_height * new_width / left_width)
    right_new_height = int(right_height * new_width / right_width)
    img_left = img_left.resize((new_width, left_new_height))
    img_right = img_right.resize((new_width, right_new_height))
    img_left.save(file_name + '_left_1000.jpg')
    img_right.save(file_name + '_right_1000.jpg')


files = os.listdir(images_dir)
for file in files:
    img_url = images_dir + '/' + file
    split_image(img_url)

过程非常简单,最后图片自适应缩放的地方需要计算一下。

发布日期:2023-03-04 浏览次数:636

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注