python把四个图合成一个图代码
时间: 2024-02-03 13:03:36 浏览: 18
你可以使用PIL库来实现将四张图片合成为一张图片的操作,以下是一个示例代码:
```python
from PIL import Image
# 打开四张图片
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')
img3 = Image.open('image3.jpg')
img4 = Image.open('image4.jpg')
# 获取每张图片的尺寸
width, height = img1.size
# 创建一个新的图片,尺寸为四张图片的宽度和高度之和
new_img = Image.new('RGB', (width * 2, height * 2))
# 将四张图片依次粘贴到新的图片上
new_img.paste(img1, (0, 0))
new_img.paste(img2, (width, 0))
new_img.paste(img3, (0, height))
new_img.paste(img4, (width, height))
# 保存新的图片
new_img.save('merged_image.jpg')
```
这个示例代码将四张图片按照左上、右上、左下、右下的顺序合并为一张图片,并将合并后的图片保存为`merged_image.jpg`。你可以根据需要修改代码来适应不同的合并方式。
相关问题
写一段python代码,把四张图片拼在一起,每张有一个标题,要求拼接间距可调整,并保存合成后的图片
好的,这是您需要的Python代码:
```python
from PIL import Image, ImageDraw, ImageFont
# 打开图片并获取图片大小
img1 = Image.open('image1.jpg')
img2 = Image.open('image2.jpg')
img3 = Image.open('image3.jpg')
img4 = Image.open('image4.jpg')
w1, h1 = img1.size
w2, h2 = img2.size
w3, h3 = img3.size
w4, h4 = img4.size
# 计算拼接后图片的大小
max_width = max(w1, w2, w3, w4)
total_height = h1 + h2 + h3 + h4
spacing = 10 # 设置间距为10像素
total_height += 3 * spacing
# 创建新图片
new_img = Image.new('RGB', (max_width, total_height), (255, 255, 255))
# 在新图片上拼接四张图片和标题
font = ImageFont.truetype('arial.ttf', size=20)
draw = ImageDraw.Draw(new_img)
draw.text((10, 0), 'Title 1', font=font, fill=(0, 0, 0))
new_img.paste(img1, (0, spacing + 20))
draw.text((10, h1 + 2 * spacing + 20), 'Title 2', font=font, fill=(0, 0, 0))
new_img.paste(img2, (0, h1 + 2 * spacing + 2 + 20))
draw.text((10, h1 + h2 + 3 * spacing + 20), 'Title 3', font=font, fill=(0, 0, 0))
new_img.paste(img3, (0, h1 + h2 + 3 * spacing + 2 + 20))
draw.text((10, h1 + h2 + h3 + 4 * spacing + 20), 'Title 4', font=font, fill=(0, 0, 0))
new_img.paste(img4, (0, h1 + h2 + h3 + 4 * spacing + 2 + 20))
# 保存拼接后的图片
new_img.save('merged_image.jpg')
```
注:以上代码仅供参考和学习使用,请根据具体情况进行修改。
利用python的pdfrw库将一个PDF文件的每四页合成一页生成新的PDF,代码
很好,下面是利用pdfrw库实现此功能的代码:
``` python
import pdfrw
# 读取原始PDF文件
infile = 'original.pdf'
input_pdf = pdfrw.PdfReader(infile)
# 创建新的PDF文件
outfile = 'merged.pdf'
output_pdf = pdfrw.PdfWriter()
# 将每四页合并成一页
for i in range(0, len(input_pdf.pages), 4):
page_set = input_pdf.pages[i:i+4]
pages = [pdfrw.PageMerge() for _ in range(len(page_set))]
for j, page in enumerate(page_set):
pages[j].addpage(page)
pages[j].x = int(j/2) % 2 * page.MediaBox.x
pages[j].y = (1 - int(j/2) % 2) * page.MediaBox.y
pages[j].scale(0.5)
for j in range(1, len(pages)):
pages[0].add(pages[j])
output_pdf.addpage(pages[0])
# 保存新的PDF文件
output_pdf.write(outfile)
```
希望对您有所帮助。