我试图将两个图像合并在一起,如果它们的大小相等

时间:2019-06-29 14:31:53

标签: python python-imaging-library

如果两个图像大小相等,我正在尝试将它们合并在一起。 谁能帮我吗? 这就是我到目前为止所得到的。...

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 :(得分:0)

通过.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, box=(w1, 0))
    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 h1 == h2:
    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.')