Главная » 2025 » Декабрь » 10 » UImage: разделение изображения на каналы и объединение каналов
20:11
UImage: разделение изображения на каналы и объединение каналов

UImage: разделение изображения на каналы и объединение каналов

Разделить изображение на отдельные каналы позволяет статический метод split() из класса UImageChange. Формат метода:

UImageChange.split(<UImage>)

В качестве параметра указывается объект UImage. Метод возвращает кортеж из 4-х элементов (R, G, B, A) или значение None в случае ошибки. Каждый элемент кортежа является объектом UImageGray. При выполнении операции сторонние библиотеки не используются. Пример:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
channels = UImageChange.split(img)
if channels is not None:
    red, green, blue, alpha = channels
    print(red)     # UImageGray(width=500, height=333)
    print(green)   # UImageGray(width=500, height=333)
    print(blue)    # UImageGray(width=500, height=333)
    print(alpha)   # UImageGray(width=500, height=333)
else:
    print("Ошибка при выполнении операции")

Если нужно получить только один канал, то можно воспользоваться следующими методами из класса UImageChange:

UImageChange.red_channel(<UImage>)
UImageChange.green_channel(<UImage>)
UImageChange.blue_channel(<UImage>)
UImageChange.alpha_channel(<UImage>)

В качестве параметра указывается объект UImage. Методы возвращают объект UImageGray или значение None в случае ошибки. При выполнении операции сторонние библиотеки не используются. Пример:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
red = UImageChange.red_channel(img)
green = UImageChange.green_channel(img)
blue = UImageChange.blue_channel(img)
alpha = UImageChange.alpha_channel(img)
print(red)     # UImageGray(width=500, height=333)
print(green)   # UImageGray(width=500, height=333)
print(blue)    # UImageGray(width=500, height=333)
print(alpha)   # UImageGray(width=500, height=333)

Произвести обратную операцию (собрать изображение из каналов) позволяет статический метод merge() из класса UImageChange. Формат метода:

UImageChange.merge(r, g, b, a)

В качестве параметров указываются объекты UImageGray. Размеры всех объектов должны быть одинаковыми. Метод возвращает объект UImage или значение None в случае ошибки. При выполнении операции сторонние библиотеки не используются. Пример:

from unicross_image.uimage import UImage
from unicross_image.uimagechange import UImageChange

img = UImage.load("foto.png")
red, green, blue, alpha = UImageChange.split(img)
img2 = UImageChange.merge(red, green, blue, alpha)
if img2:
    print(img2) # UImage(width=500, height=333)
    img2.save("test.png")
else:
    print("Ошибка при выполнении операции")

Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage

Категория: UImage | Просмотров: 5 | Добавил: unicross | Теги: Python, UImage, ImageMagick, PIL | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Списки слов [10]
Списки слов и словари
OCR [4]
Оптическое распознавание символов
UImage [80]
Графическая библиотека для Python
UImage C [7]
Графическая библиотека для Python
Программы [4]
Полезные программы
Прочее [3]
Другие темы
Календарь
«  Декабрь 2025  »
Пн Вт Ср Чт Пт Сб Вс
1234567
891011121314
15161718192021
22232425262728
293031