怎样快速的批量把图片对半切开
今天接到一个需求,客户做了一本宣传册,需要左右对半切开然后添加到他们的网站上,大概有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)
过程非常简单,最后图片自适应缩放的地方需要计算一下。
发表回复