写一段pyqt5代码,运行时可以批量对高分辨率图像进行自定义宽度和高度、裁剪步长的裁剪,同时要求裁剪所得到的图像命名方式按照一定规范,方便以后再拼接起来。
时间: 2024-10-06 22:02:02 浏览: 26
在PyQt5中,你可以使用`PIL`库(Pillow)来进行图像处理,包括裁剪和保存。以下是一个简单的示例,展示了如何批量裁剪高分辨率图片并按照指定规则命名:
```python
from PIL import Image
import os
# 定义源目录、目标目录、裁剪尺寸和步长
src_dir = 'path/to/source/images'
dst_dir = 'path/to/destination/images'
width = 800
height = 600
crop_step = 100
if not os.path.exists(dst_dir):
os.makedirs(dst_dir)
for filename in os.listdir(src_dir):
# 打开图片
img = Image.open(os.path.join(src_dir, filename))
# 获取原图尺寸
original_width, original_height = img.size
# 计算裁剪次数
crop_count_w = (original_width - width) // crop_step + 1
crop_count_h = (original_height - height) // crop_step + 1
for i in range(crop_count_w):
for j in range(crop_count_h):
# 裁剪区域左上角坐标
x1 = i * crop_step
y1 = j * crop_step
# 裁剪区域右下角坐标
x2 = min(x1 + width, original_width)
y2 = min(y1 + height, original_height)
# 裁剪并保存新的图像
cropped_img = img.crop((x1, y1, x2, y2))
new_filename = f'{filename[:-4]}_crop_{i}_{j}.jpg' # 命名规范:原文件名去掉后缀,加上_crop和坐标
cropped_img.save(os.path.join(dst_dir, new_filename))
阅读全文