from PIL import Image# 打开图像文件image = Image.open('image.jpg')# 定义左上角和右下角坐标left = 100top = 100right = 500bottom = 500# 裁剪图像cropped_image = image.crop((left, top, right, bottom))# 保存裁剪后的图像cropped_image.save('cropped_image.jpg')
时间: 2023-06-18 08:08:41 浏览: 77
这是一个使用 Python PIL 库进行图像裁剪的示例代码。首先,使用 `Image.open()` 打开一个名为 'image.jpg' 的图像文件。然后,通过定义左上角和右下角的坐标,将图像裁剪为一个矩形区域。最后,使用 `cropped_image.save()` 将裁剪后的图像保存为 'cropped_image.jpg' 文件。
相关问题
更改这段代码,让它可以从文件夹中读取图片并进行批量操作from PIL import Image import os # 加载图像 image_path = "D:/pythonProject/image_dir/DL2D00001601.jpg" # 替换为你的图像文件路径 image = Image.open(image_path) # 定义切割参数 num_rows = 4 # 指定行数 num_cols = 8 # 指定列数 # 计算每个小图像的宽度和高度 width, height = image.size crop_width = width // num_cols crop_height = height // num_rows # 切割图像并保存小图像 for i in range(num_rows): for j in range(num_cols): # 计算切割框的左上角和右下角坐标 left = j * crop_width upper = i * crop_height right = left + crop_width lower = upper + crop_height # 切割图像 crop = image.crop((left, upper, right, lower)) # 创建保存路径 save_dir = 'crop_dir' if not os.path.exists(save_dir): os.makedirs(save_dir) # 保存文件到指定路径下 crop.save(f"{save_dir}/crop_{i}_{j}.jpg")
可以使用os模块中的listdir()函数获取文件夹中的所有文件名,然后对每个文件进行操作。修改后的代码如下:
from PIL import Image
import os
# 加载图像
image_dir = "D:/pythonProject/image_dir"
for filename in os.listdir(image_dir):
image_path = os.path.join(image_dir, filename)
image = Image.open(image_path)
# 定义切割参数
num_rows = 4 # 指定行数
num_cols = 8 # 指定列数
# 计算每个小图像的宽度和高度
width, height = image.size
crop_width = width // num_cols
crop_height = height // num_rows
# 切割图像并保存小图像
for i in range(num_rows):
for j in range(num_cols):
# 计算切割框的左上角和右下角坐标
left = j * crop_width
upper = i * crop_height
right = left + crop_width
lower = upper + crop_height
# 切割图像
crop = image.crop((left, upper, right, lower))
# 创建保存路径
save_dir = 'crop_dir'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 获取文件名和扩展名
name, ext = os.path.splitext(filename)
# 保存文件到指定路径下
crop.save(f"{save_dir}/{name}_crop_{i}_{j}{ext}")
这段代码会批量读取指定文件夹下的所有图片,对每个图片进行切割,并将切割后的小图像保存到指定的文件夹中。
from PIL import Image for i in range(1,45): img = Image.open("C://Users/xiaoran.ma/Desktop/Desk/dream/pic/str(i).png") print(img.size) cropped = img.crop((100, 0, 1200,625)) # (left, upper, right, lower) cropped.save("C://Users/xiaoran.ma/Desktop/Desk/dream/pic_cut/str(i).png")
这段代码使用了 Python Imaging Library (PIL) 库中的 Image 模块。它在循环中打开了一个文件夹中编号从 1 到 44 的图片,并输出每个图片的尺寸。然后它对每个图片进行了裁剪,裁剪区域的左上角坐标为 (100, 0),右下角坐标为 (1200, 625)。
阅读全文