用Python写一个可以批量裁剪图片大小为固定尺寸的脚本
时间: 2023-08-31 10:30:04 浏览: 147
### 回答1:
可以使用Python中的Pillow库来批量裁剪图片大小为固定尺寸。以下是一个示例脚本:
```python
from PIL import Image
import os
def resize_images(input_dir, output_dir, size):
for filename in os.listdir(input_dir):
if not filename.endswith('.jpg'):
continue
with Image.open(os.path.join(input_dir, filename)) as im:
im = im.resize(size)
im.save(os.path.join(output_dir, filename))
if __name__ == '__main__':
input_dir = 'input_images'
output_dir = 'output_images'
size = (256, 256)
resize_images(input_dir, output_dir, size)
```
以上代码中,`input_dir`表示输入图片所在的文件夹路径,`output_dir`表示输出图片所在的文件夹路径,`size`表示需要裁剪的尺寸大小。代码遍历`input_dir`下的所有`.jpg`文件,将其按照指定的尺寸进行裁剪,保存到`output_dir`中。需要注意的是,代码只对`.jpg`文件进行处理,如需处理其他格式文件,需要修改代码中的判断条件。
### 回答2:
编写一个Python脚本,可以批量裁剪图片大小为固定尺寸。
开发这个脚本需要使用Python的图像处理库PIL(Python Imaging Library)。首先,需要安装PIL库,可以通过运行以下命令来安装:
```
pip install pillow
```
安装完成后,可以创建一个Python脚本文件,并导入PIL库的相关模块:
```python
from PIL import Image
import os
```
接下来,定义一个函数来实现图片裁剪操作:
```python
def crop_images(input_dir, output_dir, width, height):
# 判断输出目录是否存在,如果不存在则创建
if not os.path.exists(output_dir):
os.makedirs(output_dir)
# 遍历输入目录下的所有图片文件
for filename in os.listdir(input_dir):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 构建图片的完整路径
input_path = os.path.join(input_dir, filename)
# 打开图片
image = Image.open(input_path)
# 裁剪图片为固定尺寸
cropped_image = image.resize((width, height), Image.ANTIALIAS)
# 构建输出路径
output_path = os.path.join(output_dir, filename)
# 保存裁剪后的图片
cropped_image.save(output_path)
```
在这个函数中,首先判断输出目录是否存在,如果不存在则创建。然后,遍历输入目录下的所有图片文件,对每一张图片进行裁剪操作,并保存到输出目录中。
最后,调用这个函数来进行批量裁剪:
```python
input_dir = "input"
output_dir = "output"
width = 200
height = 200
crop_images(input_dir, output_dir, width, height)
```
在这个示例中,输入目录为"input",输出目录为"output",裁剪尺寸为200x200像素。你可以根据实际需求修改输入目录、输出目录和裁剪尺寸等参数。
这样,就完成了一个可以批量裁剪图片大小为固定尺寸的Python脚本。可以将需要裁剪的图片放在输入目录中,运行脚本后,裁剪后的图片将保存到输出目录中。
### 回答3:
用Python编写一个脚本来批量裁剪图片大小为固定尺寸可以使用PIL库(Python Imaging Library)来实现。以下是一个例子:
```python
from PIL import Image
import os
def crop_images(input_dir, output_dir, target_size):
# 遍历输入目录中的所有文件
for filename in os.listdir(input_dir):
if filename.endswith(".jpg") or filename.endswith(".png"):
# 打开图片
image_path = os.path.join(input_dir, filename)
img = Image.open(image_path)
# 裁剪图片
img.thumbnail(target_size, Image.ANTIALIAS)
# 确定输出路径并保存裁剪后的图片
output_path = os.path.join(output_dir, filename)
img.save(output_path)
print(f"已裁剪并保存图片 {filename}")
# 设置输入目录、输出目录和目标尺寸
input_dir = "input/"
output_dir = "output/"
target_size = (500, 500)
# 调用函数进行批量裁剪
crop_images(input_dir, output_dir, target_size)
```
在这个例子中,我们首先导入了必要的模块:PIL库和os库。然后定义了一个名为crop_images的函数来执行图片裁剪的操作。函数接受三个参数:输入目录(包含待裁剪图片的文件夹)、输出目录(用于保存裁剪后的图片的文件夹)以及目标尺寸(裁剪后的图片的大小)。
函数的主要部分是通过遍历输入目录中的所有文件,打开图片并使用thumbnail函数来裁剪。thumbnail函数采用目标尺寸和缩放方法(这里使用了Image.ANTIALIAS)作为参数。接下来,我们确定裁剪后图片的输出路径并保存图片。最后,我们通过调用函数来执行裁剪操作,并打印出每个裁剪后的图片的文件名。
你可以根据实际需求修改输入目录、输出目录和目标尺寸的值,以适应你的图片裁剪需求。
阅读全文