Python批量裁剪图片的思路详解
作者:zstar-_ 时间:2023-05-11 03:55:59
需求
我的需求是批量裁剪某一文件夹下的所有图片,并指定裁剪宽高。
思路
1、 先使用PIL.Image.size
获取输入图片的宽高。
2、宽高除以2得到中心点坐标
3、根据指定宽高,以中心点向四周拓展
4、调用PIL.Image.crop
完成裁剪
程序
import os
from PIL import Image
def crop(input_img_path, output_img_path, crop_w, crop_h):
image = Image.open(input_img_path)
x_max = image.size[0]
y_max = image.size[1]
mid_point_x = int(x_max / 2)
mid_point_y = int(y_max / 2)
right = mid_point_x + int(crop_w / 2)
left = mid_point_x - int(crop_w / 2)
down = mid_point_y + int(crop_h / 2)
up = mid_point_y - int(crop_h / 2)
BOX_LEFT, BOX_UP, BOX_RIGHT, BOX_DOWN = left, up, right, down
box = (BOX_LEFT, BOX_UP, BOX_RIGHT, BOX_DOWN)
crop_img = image.crop(box)
crop_img.save(output_img_path)
if __name__ == '__main__':
dataset_dir = "cut" # 图片路径
output_dir = 'out' # 输出路径
crop_w = 300 # 裁剪图片宽
crop_h = 300 # 裁剪图片高
# 获得需要转化的图片路径并生成目标路径
image_filenames = [(os.path.join(dataset_dir, x), os.path.join(output_dir, x))
for x in os.listdir(dataset_dir)]
# 转化所有图片
for path in image_filenames:
crop(path[0], path[1], crop_w, crop_h)
测试
裁剪前:
裁剪后:
来源:https://blog.csdn.net/qq1198768105/article/details/125652106
标签:Python,批量,裁剪
0
投稿
猜你喜欢
PyTorch 中的 torch.utils.data 解析(推荐)
2021-09-14 01:58:16
SqlServer数据库远程连接案例教程
2024-01-21 10:16:08
Python 12306抢火车票脚本
2023-09-12 13:36:11
python中的集合及集合常用的使用方法
2023-05-04 11:14:11
Django实现CAS+OAuth2的方法示例
2023-01-26 17:32:46
PHP实现sha-256哈希算法实例代码
2023-05-25 01:05:23
网页常用特效整理:初级篇
2023-06-27 00:58:37
ASP实现类似Java中的Linked HashMap类
2010-04-03 20:49:00
如何修复MySQL数据库表
2009-03-20 13:24:00
python数据处理 根据颜色对图片进行分类的方法
2022-02-27 08:41:37
在win和Linux系统中python命令行运行的不同
2023-08-03 05:16:22
Sanic框架异常处理与中间件操作实例分析
2023-04-30 00:27:31
python中如何使用insert函数
2023-08-02 17:04:43
使用Python操作excel文件的实例代码
2023-07-14 10:45:50
Python使用pycharm导入pymysql教程
2024-01-17 22:47:49
获取Django项目的全部url方法详解
2022-09-08 23:06:27
python实现贪吃蛇游戏源码
2021-07-22 12:45:24
Django中外键ForeignKey介绍使用
2023-05-18 01:26:30
python3 Scrapy爬虫框架ip代理配置的方法
2021-03-01 00:39:11
python实现在控制台输入密码不显示的方法
2023-06-19 22:44:23