Python批量剪裁美女图片输出为相同尺寸

 今天分享的代码主要功能是剪裁带有人像的图片,剪裁为相同尺寸的正方形,并且要保留图片中人头部分不能被剪裁掉

# encoding=utf8

'''
Python批量剪裁图片输出为相同尺寸
源码地址:
'''

# 导入包
from PIL import Image
import os


# 定义方法
def imageProcessing(imagepath, squarepath):
	'''读取图片并进行批量剪裁'''
	files = os.listdir(imagepath) # 读取指定目录中的所有文件
	for f in files:
		file_p =  os.path.join(imagepath, f) # 图片原始位置
		img = Image.open(file_p) # 打开图片
		w = nw = img.width       #图片的宽
		h = nh = img.height      #图片的高

		# 计算要剪裁图片的x,y,w,h
		if w >= h:
			nx, ny, nw = (w - h) / 2, 0, h
		if h >= w:
			nx, ny, nh = 0, 0, w

		squar_p = os.path.join(squarepath, f) # 新图片保存位置
		if not os.path.exists(squarepath): 
			os.mkdir(squarepath) # 如果目不存在就创建
		cropped = img.crop((nx, ny, nw + nx, nh + ny)) # 剪裁图片
		cropped = cropped.resize((500, 500)) # 宽高调整为500像素
		cropped = cropped.convert("RGB") # 转为jpe格式
		cropped.save(squar_p) # 保存剪裁后图片
		print(file_p, '==>' ,squar_p)


if __name__ == '__main__':

	# 存放待处理图片的目录
	imagepath = r'D:\Test\image'

	# 图片处理结果保存目录
	squarepath = r'D:\Test\square'

	# 执行方法
	imageProcessing(imagepath, squarepath)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值