Как изменить размер одного изображения так, чтобы оно соответствовало другому, и закрепить изображения в папке с python - PullRequest
0 голосов
/ 23 января 2020

У меня есть следующий код, который последовательно склеивает все изображения в определенную папку. Однако изображения могут иметь разные размеры, и я хотел бы сшить их таким образом, чтобы изображение с большей высотой изменялось, чтобы соответствовать изображению с меньшей высотой без изменения соотношения сторон.

import os
import sys
from PIL import Image

def stitch(name1, name2):
images = map(Image.open, [name1, name2])
widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height), color = (255, 255, 255))

x_offset = 0
for im in images:
  new_im.paste(im, (x_offset,0))
  x_offset += im.size[0]

new_im.save(name1)

# ----

folder = '/Users/folder/Desktop/folder'

# get all files in alphabetic order
all_files = sorted(os.listdir(folder))
if '.DS_Store' in all_files:
all_files.remove('.DS_Store')

# add folder to filename to have full path
all_files = [os.path.join(folder, name) for name in all_files]

# create pairs
it = iter(all_files)
for a, b in zip(it, it):
  stitch(a, b)  
...