使用python将一系列图像放入一个A4页面

时间:2013-10-08 00:45:16

标签: python image png

我有一系列图表(.png文件),我想将其中的四个放入A4页面并继续为其余图表执行此操作。可以用python做到吗?我还不知道如何做到这一点。

有人可以帮助我吗?

非常感谢,

1 个答案:

答案 0 :(得分:4)

如果您只是询问如何将四个图像拼接成一个更大的图像,这对于大多数图像处理库来说很容易。

我将展示如何使用PIL / Pillow

进行操作
import sys
from PIL import Image

width, height = int(8.27 * 300), int(11.7 * 300) # A4 at 300dpi

images = sys.argv[1:]
groups = [images[i:i+4] for i in range(0, len(images), 4)]
for i, group in enumerate(groups):
    page = Image.new('RGB', (width, height), 'white')
    page.paste(Image.open(group[0]), box=(0, 0))
    page.paste(Image.open(group[1]), box=(int(width/2.+.5), 0))
    page.paste(Image.open(group[2]), box=(0, int(height/2.+.5)))
    page.paste(Image.open(group[3]), box=(int(width/2.+.5), int(height/2.+.5)))
    page.save('page{}.pdf'.format(i))

这是示例代码,而不是问题的完整解决方案。一些警告:

  • 这会为每个页面生成一个单独的PDF文件。
  • 我将PNG文件放在页面每个象限的左上角。我不知道你想要放在哪里,但可能不是那样。 (许多打印机无法一直打印到边距,即使可以,也通常不希望它们。)
  • 我没有缩放图像,如果您的图表是100x100或2000x2000,这可能会有问题。
  • 我以为你想以300dpi打印出来。