Преобразование объекта UImageGray в строку в формате BWSTR и наоборот
Строка в формате BWSTR может содержать только два значения:
0 — означает черный цвет (соответствует значению 0);
1 — означает белый цвет (соответствует значению 255).
Строки двумерной матрицы записываются слева направо и сверху вниз. Точно так же, как в список arr.
Преобразовать черно-белое изображение, хранимое в объекте UImageGray, в строку в формате BWSTR позволяет статический метод uimagegray_to_bwstr() из класса UHelperNP. Формат метода:
UHelperNP.uimagegray_to_bwstr(<UImageGray>, invert=False)
В качестве первого параметра указывается черно-белое изображение. Если изображение не является черно-белым, то любое число больше 0, будет преобразовано в значение "1". Пример:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray(3, 2)
img.arr = [255, 255, 255, 0, 0, 0]
print(UHelperNP.uimagegray_to_bwstr(img)) # 111000
img.arr = [255, 255, 255, 128, 64, 0]
print(UHelperNP.uimagegray_to_bwstr(img)) # 111110
Если в параметре invert указано значение True, то значения в строке будут инвертированы:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray(3, 2)
img.arr = [255, 255, 255, 0, 0, 0]
print(UHelperNP.uimagegray_to_bwstr(img, invert=True)) # 000111
img.arr = [255, 255, 255, 128, 64, 0]
print(UHelperNP.uimagegray_to_bwstr(img, invert=True)) # 000001
Создать объект UImageGray на основе строки в формате BWSTR позволяет статический метод bwstr_to_uimagegray() из класса UHelperNP. Формат метода:
UHelperNP.bwstr_to_uimagegray(<Ширина>, <Высота>, <BWSTR>, invert=False)
В первом параметре указывается ширина изображения, а во втором — его высота. В третьем параметре задается строка в формате BWSTR. По умолчанию любая цифра внутри строки не равная 0, будет преобразована в число 255. Если операция выполнена успешно, то метод вернет объект UImageGray, а в противном случае — значение None. Пример:
from unicross_image.uhelper_np import UHelperNP
bwstr = "111000"
img = UHelperNP.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 = UHelperNP.bwstr_to_uimagegray(3, 2, bwstr)
print(img) # UImageGray(width=3, height=2)
print(img.arr) # [255, 255, 255, 0, 0, 0]
bwstr = "abc000"
img = UHelperNP.bwstr_to_uimagegray(3, 2, bwstr)
print(img) # None
Если в параметре invert указано значение True, то значения в результате будут инвертированы:
from unicross_image.uhelper_np import UHelperNP
bwstr = "111000"
img = UHelperNP.bwstr_to_uimagegray(3, 2, bwstr, invert=True)
print(img) # UImageGray(width=3, height=2)
print(img.arr) # [0, 0, 0, 255, 255, 255]
bwstr = "222000"
img = UHelperNP.bwstr_to_uimagegray(3, 2, bwstr, invert=True)
print(img) # UImageGray(width=3, height=2)
print(img.arr) # [0, 0, 0, 255, 255, 255]
Преобразование объекта UMask в строку в формате BWSTR и наоборот
Строка в формате BWSTR может содержать только два значения:
0 — означает фон (соответствует значению False);
1 — означает часть объекта (соответствует значению True).
Строки двумерной матрицы записываются слева направо и сверху вниз. Точно так же, как в список arr.
Преобразовать объект UMask в строку в формате BWSTR позволяет статический метод umask_to_bwstr() из класса UHelperNP. Формат метода:
UHelperNP.umask_to_bwstr(<UMask>, invert=False)
В качестве первого параметра указывается объект UMask. Пример:
from unicross_image.uimagegray import UMask
from unicross_image.uhelper_np import UHelperNP
img = UMask(3, 2)
img.arr = [True, True, True, False, False, False]
print(UHelperNP.umask_to_bwstr(img)) # 111000
Если в параметре invert указано значение True, то значения в строке будут инвертированы:
from unicross_image.uimagegray import UMask
from unicross_image.uhelper_np import UHelperNP
img = UMask(3, 2)
img.arr = [True, True, True, False, False, False]
print(UHelperNP.umask_to_bwstr(img, invert=True)) # 000111
Создать объект UMask на основе строки в формате BWSTR позволяет статический метод bwstr_to_umask() из класса UHelperNP. Формат метода:
UHelperNP.bwstr_to_umask(<Ширина>, <Высота>, <BWSTR>, invert=False,
x=0, y=0)
В первом параметре указывается ширина изображения, а во втором — его высота. В третьем параметре задается строка в формате BWSTR. По умолчанию любая цифра внутри строки не равная 0, будет преобразована в True. Параметры x и y задают координаты начальной точки. Если операция выполнена успешно, то метод вернет объект UMask, а в противном случае — значение None. Пример:
from unicross_image.uhelper_np import UHelperNP
bwstr = "111000"
img = UHelperNP.bwstr_to_umask(3, 2, bwstr, x=5, y=10)
print(img) # UMask(width=3, height=2, x=5, y=10)
print(img.arr) # [True, True, True, False, False, False]
bwstr = "222000"
img = UHelperNP.bwstr_to_umask(3, 2, bwstr, x=5, y=10)
print(img) # UMask(width=3, height=2, x=5, y=10)
print(img.arr) # [True, True, True, False, False, False]
bwstr = "abc000"
img = UHelperNP.bwstr_to_umask(3, 2, bwstr)
print(img) # None
Если в параметре invert указано значение True, то значения в результате будут инвертированы:
from unicross_image.uhelper_np import UHelperNP
bwstr = "111000"
img = UHelperNP.bwstr_to_umask(3, 2, bwstr, invert=True, x=5, y=10)
print(img) # UMask(width=3, height=2, x=5, y=10)
print(img.arr) # [False, False, False, True, True, True]
bwstr = "222000"
img = UHelperNP.bwstr_to_umask(3, 2, bwstr, invert=True, x=5, y=10)
print(img) # UMask(width=3, height=2, x=5, y=10)
print(img.arr) # [False, False, False, True, True, True]
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage