(1)对某一张图片进行显示,显示图片的 size、模式和 format,旋转后显 示,转换为灰度图后进行显示、修改图片为原尺寸的一般进行显示。 (2)对 images 目录先的图片进行批处理,对每张图片加上自己“班内序号 姓 4 / 5 名”格式的文字,并进行保存。 (3)图片拼接:对 images 目录下的所有图片进行横向拼接,并进行保存。
时间: 2023-11-27 11:55:39 浏览: 56
以下是Python代码实现:
(1)对某一张图片进行显示,显示图片的 size、模式和 format,旋转后显示,转换为灰度图后进行显示,修改图片为原尺寸的一般进行显示。
```
from PIL import Image
# 打开图片
img = Image.open('test.jpg')
# 显示图片信息
print('图片大小:', img.size)
print('图片模式:', img.mode)
print('图片格式:', img.format)
# 旋转并显示
img_rotate = img.rotate(45)
img_rotate.show()
# 转换为灰度图并显示
img_gray = img.convert('L')
img_gray.show()
# 修改图片为原尺寸的一半并显示
img_half = img.resize((int(img.size[0]/2), int(img.size[1]/2)))
img_half.show()
```
(2)对 images 目录下的图片进行批处理,对每张图片加上自己“班内序号 姓 4/5 名”格式的文字,并进行保存。
```
import os
from PIL import Image, ImageFont, ImageDraw
# 遍历目录下的所有图片
for root, dirs, files in os.walk('images'):
for file in files:
if file.endswith('.jpg') or file.endswith('.png'):
# 打开图片
img = Image.open(os.path.join(root, file))
# 添加文字
draw = ImageDraw.Draw(img)
font = ImageFont.truetype('arial.ttf', 30)
text = '1 Wang 4/5'
draw.text((10, 10), text, font=font, fill='red')
# 保存图片
img.save(os.path.join(root, file.split('.')[0]+'_new.jpg'))
```
(3)图片拼接:对 images 目录下的所有图片进行横向拼接,并进行保存。
```
import os
from PIL import Image
# 获取目录下所有图片
img_list = []
for root, dirs, files in os.walk('images'):
for file in files:
if file.endswith('.jpg') or file.endswith('.png'):
img_list.append(Image.open(os.path.join(root, file)))
# 横向拼接
img_merge = Image.new('RGB', (sum([img.size[0] for img in img_list]), img_list[0].size[1]))
x_offset = 0
for img in img_list:
img_merge.paste(img, (x_offset, 0))
x_offset += img.size[0]
# 保存拼接后的图片
img_merge.save('merge.jpg')
```
阅读全文