Главная » 2025 » Декабрь » 05 » Преобразование объекта UImageGray в строку в формате BWSTR и наоборот
20:14
Преобразование объекта UImageGray в строку в формате BWSTR и наоборот

Преобразование объекта UImageGray в строку в формате BWSTR и наоборот

Строка в формате BWSTR может содержать только два значения:

  • 0 — означает черный цвет (соответствует значению 0);
  • 1 — означает белый цвет (соответствует значению 255).

Строки двумерной матрицы записываются слева направо и сверху вниз. Точно так же, как в список arr.

Преобразовать черно-белое изображение, хранимое в объекте UImageGray, в строку в формате BWSTR позволяет статический метод uimagegray_to_bwstr() из класса UMask. Формат метода:

UMask.uimagegray_to_bwstr(<UImageGray>)

В качестве параметра указывается черно-белое изображение. Если изображение не является черно-белым, а также в случае ошибки метод вернет значение None. Пример:

from unicross_image.uimagegray import UImageGray, UMask

img = UImageGray(3, 2)
img.arr = [255, 255, 255,   0, 0, 0]
print(UMask.uimagegray_to_bwstr(img))    # 111000

img.arr = [255, 255, 255,   128, 128, 128]
print(UMask.uimagegray_to_bwstr(img))    # None

Создать объект UImageGray на основе строки в формате BWSTR позволяет статический метод bwstr_to_uimagegray() из класса UMask. Формат метода:

UMask.bwstr_to_uimagegray(<Ширина>, <Высота>, <BWSTR>)

В первом параметре указывается ширина изображения, а во втором — его высота. В третьем параметре задается строка в формате BWSTR. Если операция выполнена успешно, то метод вернет объект UImageGray, а в противном случае — значение None. Пример:

from unicross_image.uimagegray import UMask

bwstr = "111000"
img = UMask.bwstr_to_uimagegray(3, 2, bwstr)
print(img)        # UImageGray(width=3, height=2)
print(img.arr)    # [255, 255, 255,   0, 0, 0]

bwstr = "222000"
img = UMask.bwstr_to_uimagegray(3, 2, bwstr)
print(img)        # None

Сохраним черно-белое изображение в файл, а затем загрузим его из файла и создадим объект UImageGray:

from unicross_image.uimagegray import UImageGray, UMask

img = UImageGray(3, 2)
img.arr = [255, 255, 255,   0, 0, 0]
w, h = img.get_size()
bwstr = UMask.uimagegray_to_bwstr(img)
data = "{0}|{1}|{2}".format(w, h, bwstr)
# Сохранение изображения в файл
with open("test.txt", "w", encoding="utf-8") as f:
    f.write(data)
# Загрузка изображения из файла
with open("test.txt", "r", encoding="utf-8") as f:
    d = f.read()
a = d.strip().split("|")
w, h = int(a[0]), int(a[1])
img = UMask.bwstr_to_uimagegray(w, h, a[2])
print(img)        # UImageGray(width=3, height=2)
print(img.arr)    # [255, 255, 255, 0, 0, 0]

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

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