Python:如何将一系列图像的格式设置为适合A4页面?

Python:如何将一系列图像的格式设置为适合A4页面?,python,pillow,Python,Pillow,我正在从事一个艺术项目,正在将文本转换成二进制图像。 到目前为止,我已经完成了我认为是最困难的部分,并且几乎完成了… 除了我不太确定如何解决问题的最后一点: 我一个接一个地显示了一系列图像,但我需要包装这些图像,以便它们的格式都适合横向A4(打印纸)页面。 我应该如何处理这个问题 我有基本的脚本将文本转换成二进制图像 我看到的另一个问题是,当我在整个文章中运行脚本时,打开的文件太多,我收到一个错误(如下所示): Traceback (most recent call last): File "a

我正在从事一个艺术项目,正在将文本转换成二进制图像。
到目前为止,我已经完成了我认为是最困难的部分,并且几乎完成了…
除了我不太确定如何解决问题的最后一点:

我一个接一个地显示了一系列图像,但我需要包装这些图像,以便它们的格式都适合横向A4(打印纸)页面。
我应该如何处理这个问题

我有基本的脚本将文本转换成二进制图像

我看到的另一个问题是,当我在整个文章中运行脚本时,打开的文件太多,我收到一个错误(如下所示):

Traceback (most recent call last):
File "ascii_to_binary.py", line 73, in <module>
imgs = [Image.open(i) for i in list_im]     
File "/home/odroid/.virtualenvs/cv/local/lib/python2.7/site-packages/PIL/Image.py", line 2410, in open
fp = builtins.open(filename, "rb")
IOError: [Errno 24] Too many open files: 'open_circle.png'
import numpy as np
import cv2
import imutils
import sys
from PIL import Image

open_circle = 'open_circle.png'
closed_circle = 'closed_circle.png'
diamond = 'diamond.png'

text1 = open("filename.text", "r")
letters = text1.read()

a = len(letters)


binary_text = [None]*a #pre-allocating a list

encoded_bin = ' '.join([bin(ord(letter))[2:].zfill(8) for letter in letters])       

b = len(encoded_bin[0:18])

list_im = [0]*b

for val in range(b):
    if encoded_bin[val] == '0':
        list_im[val] = closed_circle
    if encoded_bin[val] == '1':
        list_im[val] = open_circle  
    if encoded_bin[val] == ' ':
        list_im[val] = diamond

imgs = [Image.open(i) for i in list_im]     

min_shape = sorted( [(np.sum(i.size), i.size) for i in imgs] )[0][1]
imgs_comb = np.hstack( (np.asarray(i.resize(min_shape)) for i in imgs) )        

imgs_comb = Image.fromarray(imgs_comb)
imgs_comb.show()