python 将5张大小一样的图像绘制到一张图上,5张图的布局为2行布局、第1行放3张图、第2行放2张图,每行的图并居中显示,并在绘制的图中绘制一个表格,表格中要有文字
时间: 2023-04-12 13:02:06 浏览: 67
可以使用PIL库来实现这个功能,以下是示例代码:
```python
from PIL import Image, ImageDraw, ImageFont
# 创建一个空白图像,大小为600x400,背景为白色
result = Image.new("RGB", (600, 400), (255, 255, 255))
# 加载5张图片
images = []
for i in range(1, 6):
image = Image.open(f"image{i}.jpg")
images.append(image)
# 计算每张图片的大小和位置
image_width = 180
image_height = 120
padding = 20
x1 = padding
y1 = padding
x2 = x1 + image_width
y2 = y1 + image_height
positions = [
(x1, y1, x2, y2),
(x2 + padding, y1, x2 * 2 + padding, y2),
(x2 * 2 + padding * 2, y1, x2 * 3 + padding * 2, y2),
(x1, y2 + padding, x2, y2 * 2 + padding),
(x2 + padding, y2 + padding, x2 * 2 + padding, y2 * 2 + padding),
]
# 在每个位置上绘制图片
for i, position in enumerate(positions):
image = images[i].resize((image_width, image_height))
result.paste(image, position)
# 在图像上绘制表格和文字
draw = ImageDraw.Draw(result)
font = ImageFont.truetype("arial.ttf", 16)
cell_width = image_width / 3
cell_height = image_height / 2
for i in range(3):
x = x1 + i * cell_width
draw.line((x, y1, x, y2 * 2 + padding), fill=(0, 0, 0))
for i in range(2):
y = y1 + i * cell_height
draw.line((x1, y, x2 * 3 + padding, y), fill=(0, 0, 0))
text = "这是一个表格"
text_width, text_height = draw.textsize(text, font=font)
x = (x2 * 3 + padding - text_width) / 2
y = (y2 * 2 + padding - text_height) / 2
draw.text((x, y), text, font=font, fill=(0, 0, 0))
# 显示图像
result.show()
```
这段代码会将5张名为`image1.jpg`到`image5.jpg`的图片绘制到一张图像上,并在图像中绘制一个2行3列的表格,表格中心显示文字“这是一个表格”。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)