Я пытаюсь объединить два изображения вместе, если их размеры равны - PullRequest
1 голос
/ 29 июня 2019

Я пытаюсь объединить два изображения, если их размеры равны.Кто-нибудь может мне помочь?Это то, что я получил до сих пор ....

import PIL
from PIL import Image as img
x = img.open('index.jpg')
w1, h1 = x.size
print('Image 1 =',w1,'x',h1)

y = img.open('index2.jpg')
w2, h2 = y.size
print('Image 2 =',w1,'x',h1)

if x.size == y.size :
    print('Their size is equal.')
    height = max(h1,h2)
    width = w1 + w2
    z = img.new("RGB",(width,height))
    z.paste(x)
    #z.paste(y)
    z.show()

else:
    print('Their size is not equal.')

что я могу сделать, чтобы вставить второе изображение рядом с первым изображением?

1 Ответ

0 голосов
/ 29 июня 2019

Функция .paste(..) позволяет указать параметр box для указания местоположения.

Таким образом, вы можете вставить второе изображение с помощью:

import PIL
from PIL import Image as img
x = img.open('img1.jpg')
w1, h1 = x.size
print('Image 1 =',w1,'x',h1)

y = img.open('img2.jpg')
w2, h2 = y.size
print('Image 2 =',w1,'x',h1)

if x.size == y.size :
    print('Their size is equal.')
    z = img.new("RGB",(w1 + w2,h1))
    z.paste(x)
    z.paste(y<b>, box=(w1, 0)</b>)
    z.show()
else:
    print('Their size is not equal.')

Обратите внимание, что, поскольку размеры равны, высота равна h1.

Вы можете ослабить ограничение размеров, поскольку, если высоты одинаковы, это также будет работать, за исключением того, что изображение не разделяется пополам, если ширина не одинакова:

import PIL
from PIL import Image as img
x = img.open('img1.jpg')
w1, h1 = x.size
print('Image 1 =',w1,'x',h1)

y = img.open('img2.jpg')
w2, h2 = y.size
print('Image 2 =',w1,'x',h1)

if <b>h1 == h2</b>:
    print('Their size is equal.')
    z = img.new("RGB",(w1 + w2,h1))
    z.paste(x)
    z.paste(y, box=(w1, 0))
    z.show()
else:
    print('Their size is not equal.')
...