UImage: объединение двух изображений
Объединить два изображения позволяет статический метод append_im() из класса UImageChange. Формат метода:
UImageChange.append_im(<UImage1>, <UImage2>, x=False, bgcolor=None)
В качестве первых двух параметров указываются объекты UImage. Если параметр x имеет значение True, то объединение производится по горизонтали. По умолчанию применяется вертикальное объединение. В параметре bgcolor можно задать цвет фона в виде объекта UColor. Если параметр не указан или имеет значение None, то фон будет прозрачным. Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки ImageMagick. Пример объединения по вертикали:
from unicross_image.ucolor import UColor
from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange
img1 = UImage.load("foto.png")
print(img1) # UImage(width=500, height=333)
img2 = UImage(300, 200, UColor("red"))
img3 = UImageChange.append_im(img1, img2)
if img3:
print(img3) # UImage(width=500, height=533)
img3.save("test.png")
else:
print("Ошибка при выполнении операции")
Пример объединения по горизонтали с указанием зеленого цвета фона:
from unicross_image.ucolor import UColor
from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange
img1 = UImage.load("foto.png")
print(img1) # UImage(width=500, height=333)
img2 = UImage(300, 200, UColor("red"))
img3 = UImageChange.append_im(img1, img2, x=True,
bgcolor=UColor("green"))
if img3:
print(img3) # UImage(width=800, height=333)
img3.save("test.png")
else:
print("Ошибка при выполнении операции")
На самом деле объединить можно изображения любого класса. При этом результат всегда будет в виде объекта UImage:
from unicross_image.uimagergb import UImageRGB
from unicross_image.uimagechange import UImageChange
img1 = UImageRGB.load("foto.jpg")
print(img1) # UImageRGB(width=500, height=333)
img2 = img1.get_uimagegray()
print(img2) # UImageGray(width=500, height=333)
img3 = UImageChange.append_im(img1, img2)
if img3:
print(img3) # UImage(width=500, height=666)
img3.save("test.png")
else:
print("Ошибка при выполнении операции")
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage