(1)对某一张图片进行显示,显示图片的 size、模式和 format,旋转后显 示,转换为灰度图后进行显示、修改图片为原尺寸的一般进行显示。 (2)对 images 目录先的图片进行批处理,对每张图片加上自己“班内序号 姓 4 / 5 名”格式的文字,并进行保存。 (3)图片拼接:对 images 目录下的所有图片进行横向拼接,并进行保存。
时间: 2024-02-22 12:59:14 浏览: 115
好的,我来依次回答你的三个问题。
1. 显示图片的 size、模式和 format,旋转后显示,转换为灰度图后进行显示,修改图片为原尺寸的一般进行显示。
```python
from PIL import Image
# 打开图片
img = Image.open('your_image_path')
# 显示图片的 size、模式和 format
print('size:', img.size)
print('mode:', img.mode)
print('format:', img.format)
# 旋转后显示
img_rotate = img.rotate(90)
img_rotate.show()
# 转换为灰度图后进行显示
img_gray = img.convert('L')
img_gray.show()
# 修改图片为原尺寸的一般进行显示
img_half = img.resize((img.width // 2, img.height // 2))
img_half.show()
```
2. 对 images 目录下的图片进行批处理,对每张图片加上自己“班内序号 姓 4 / 5 名”的水印,并进行保存。
```python
import os
from PIL import Image, ImageDraw, ImageFont
# 定义水印文字
text = '班内序号 姓 4 / 5 名'
# 遍历 images 目录下的图片
img_dir = 'your_images_directory'
for filename in os.listdir(img_dir):
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开图片
img_path = os.path.join(img_dir, filename)
img = Image.open(img_path)
# 添加水印
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('your_font_file.ttf', 36) # 定义字体和字号
draw.text((10, 10), text, font=font, fill=(255, 255, 255, 128)) # 在左上角添加水印
# 保存图片
new_filename = f'{text}_{filename}'
new_img_path = os.path.join(img_dir, new_filename)
img.save(new_img_path)
```
3. 对 images 目录下的所有图片进行横向拼接,并进行保存。
```python
import os
from PIL import Image
# 遍历 images 目录下的图片并打开
img_dir = 'your_images_directory'
images = []
for filename in os.listdir(img_dir):
if filename.endswith('.jpg') or filename.endswith('.png'):
img_path = os.path.join(img_dir, filename)
img = Image.open(img_path)
images.append(img)
# 横向拼接图片
widths, heights = zip(*(i.size for i in images))
total_width = sum(widths)
max_height = max(heights)
new_img = Image.new('RGB', (total_width, max_height))
x_offset = 0
for img in images:
new_img.paste(img, (x_offset, 0))
x_offset += img.size[0]
# 保存图片
new_img_path = os.path.join(img_dir, 'concatenated.jpg')
new_img.save(new_img_path)
```
阅读全文