Главная » 2025 » Ноябрь » 30 » Класс UImage: изображение RGBA
19:43
Класс UImage: изображение RGBA

Класс UImage: изображение RGBA

Класс UImage описывает цветное изображение с 4-я каналами RGBA (int от 0 до 255, тип UMat.Type_8U). Инструкция импорта:

from unicross_image.uimage import UImage

Создание нового изображения

Создать новое изображение позволяет конструктор класса UImage:

UImage(width, height, color=None, create_arr=True)

Параметры width и height задают ширину и высоту изображения соответственно. Если ширина или высота меньше 1 или больше 8000, то будет сгенерировано исключение ValueError. Если параметр color имеет значение None (значение по умолчанию), то изображение будет белого цвета. Пример создания нового изображения белого цвета с шириной 3px и высотой 2px:

from unicross_image.uimage import UImage

img = UImage(3, 2)
print(img)    # UImage(width=3, height=2)
print(img.arr)
# [255, 255, 255, 255,   255, 255, 255, 255,   255, 255, 255, 255,
#  255, 255, 255, 255,   255, 255, 255, 255,   255, 255, 255, 255]

Если в параметре color передать объект класса UColor с характеристиками цвета, то изображение будет залито этим цветом. Создадим полупрозрачное изображение красного цвета с размерами 3x2px:

from unicross_image.ucolor import UColor
from unicross_image.uimage import UImage

img = UImage(3, 2, UColor(255, 0, 0, 128))
print(img)    # UImage(width=3, height=2)
print(img.arr)
# [255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128,
#  255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128]

Можно обернуть уже существующий список в объект изображения. Чтобы не создавать лишний список, в параметре create_arr следует передать значение False. При этом объект станет не валидным, так как длина пустого списка не будет соответствовать параметрам изображения. Чтобы обновить длину списка, после добавления существующего списка в атрибут arr необходимо вызвать метод update_arr_len(). Проверить объект на валидность можно с помощью метода is_valid(). Пример:

from unicross_image.uimage import UImage

arr = [255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128,
       255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128]
img = UImage(3, 2, create_arr=False)
print(img.arr)            # []
print(img.get_arr_len())  # 0

img.arr = arr             # Добавляем существующий список
print(img.is_valid())     # False
img.update_arr_len()      # Обновление данных
print(img.is_valid())     # True
print(img.get_arr_len())  # 24
print(img.arr)
# [255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128,
#  255, 0, 0, 128,   255, 0, 0, 128,   255, 0, 0, 128]

Важно понимать, что метод update_arr_len(). не делает объект валидным, он всего лишь обновляет внутренний размер списка. Объект станет валидным только в том случае, если длина списка соответствует параметрам изображения. Контроль за соблюдением валидности лежит на плечах программиста. Длина списка вычисляется по следующей формуле:

arr_len = width * height * 4

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

Категория: UImage | Просмотров: 2 | Добавил: unicross | Теги: UImage, Python | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Категории раздела
Списки слов [10]
Списки слов и словари
OCR [4]
Оптическое распознавание символов
UImage [18]
Графическая библиотека для Python
Программы [4]
Полезные программы
Прочее [3]
Другие темы
Календарь
«  Ноябрь 2025  »
Пн Вт Ср Чт Пт Сб Вс
     12
3456789
10111213141516
17181920212223
24252627282930
Архив записей