UImage: замена цвета
Сделать какой-либо цвет на изображении прозрачным позволяет статический метод transparent_im() из класса UImageChange. Формат метода:
UImageChange.transparent_im(<UImage>, color, distance=0)
В качестве первого параметра указывается объект UImage. Параметр color задает цвет, который будет заменен прозрачным цветом, в виде объекта UColor. Указав в параметре distance процент схожести от 1 до 30 можно заменить также оттенки цвета. Значение 0 задает точный цвет. Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки ImageMagick. В этом примере прозрачными станут и красный прямоугольник, и бордовый квадрат:
from unicross_image.uhelper import URect
from unicross_image.ucolor import UColor
from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange
img = UImage(300, 200, UColor("green"))
img = UImageChange.fill_rect(img, UColor("red"),
URect(50, 50, 200, 100))
img = UImageChange.fill_rect(img, UColor("red").darker(),
URect(10, 10, 50, 50))
img2 = UImageChange.transparent_im(img, UColor("red"), distance=9)
if img2:
print(img2)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Заменить какой-либо цвет другим цветом позволяет статический метод replace_color_im() из класса UImageChange. Формат метода:
UImageChange.replace_color_im(<UImage>, color, fill_color, distance=0)
В качестве первого параметра указывается объект UImage. Параметр color задает цвет, который будет заменен цветом fill_color. Цвета задаются в виде объектов UColor. Указав в параметре distance процент схожести от 1 до 30 можно заменить также оттенки цвета. Значение 0 задает точный цвет. Метод возвращает объект UImage или значение None в случае ошибки. Операция выполняется с помощью библиотеки ImageMagick. В этом примере синими станут и красный прямоугольник, и бордовый квадрат:
from unicross_image.uhelper import URect
from unicross_image.ucolor import UColor
from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange
img = UImage(300, 200, UColor("green"))
img = UImageChange.fill_rect(img, UColor("red"),
URect(50, 50, 200, 100))
img = UImageChange.fill_rect(img, UColor("red").darker(),
URect(10, 10, 50, 50))
img2 = UImageChange.replace_color_im(img, UColor("red"),
UColor("blue"), distance=9)
if img2:
print(img2)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage