在你的项目中建立一个文件夹 images,放置几张宽高都相同几张图片,比如 JPG 格式的图片。完成以下几个任务: (1)对某一张图片进行显示,显示图片的 size、模式和 format,旋转后显示,转换为灰度图后进行显示、修改图片为原尺寸的一般进行显示。 (2)对 images 目录先的图片进行批处理,对每张图片加上自己“班内序号 姓名”格式的文字,并进行保存。 (3)图片拼接:对 images 目录下的所有图片进行横向拼接,并进行保存。
时间: 2024-02-21 15:02:14 浏览: 133
图片合并,把两个文件夹里面的图片相同名称的图片进行合并放置第三个文件夹
好的,我可以回答你的问题并提供一些代码示例。
首先,对于第一个任务,你可以使用 Python 的 PIL 库来完成图片的处理和显示。以下是一个示例代码,你可以将其保存为一个 Python 文件并在命令行中运行:
```python
from PIL import Image, ImageDraw, ImageFont
# 打开图片并显示基本信息
img = Image.open('images/test.jpg')
print(f"Size: {img.size}, Mode: {img.mode}, Format: {img.format}")
# 旋转图片并显示
img_rotate = img.rotate(45)
img_rotate.show()
# 转换为灰度图并显示
img_gray = img.convert('L')
img_gray.show()
# 修改图片为原尺寸的一半并显示
img_half = img.resize((img.size[0]//2, img.size[1]//2))
img_half.show()
```
对于第二个任务,你可以使用 PIL 库中的 ImageDraw 模块来添加文字,如下所示:
```python
# 批量添加文字并保存
for i in range(1, 4):
name = f"班内序号 姓名{i}"
img = Image.open(f"images/test{i}.jpg")
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf", 20)
draw.text((10, 10), name, font=font)
img.save(f"images/test{i}_name.jpg")
```
对于第三个任务,你可以使用 PIL 库中的 Image 模块进行图片拼接,如下所示:
```python
# 横向拼接所有图片并保存
img_list = [Image.open(f"images/test{i}.jpg") for i in range(1, 4)]
widths, heights = zip(*(i.size for i in img_list))
total_width = sum(widths)
max_height = max(heights)
new_im = Image.new('RGB', (total_width, max_height))
x_offset = 0
for im in img_list:
new_im.paste(im, (x_offset,0))
x_offset += im.size[0]
new_im.save('images/merged.jpg')
```
以上是三个任务的示例代码,你可以根据自己的需求进行修改和扩展。
阅读全文