UImageGray: добавление рамки вокруг изображения или с одной стороны
Добавить рамку вокруг изображения позволяет статический метод uimagegray_add_border() из класса UHelperNP. Формат метода:
UHelperNP.uimagegray_add_border(<UImageGray>, border_size=1, color=0,
is_normalize=False)
В качестве первого параметра указывается объект UImageGray. Толщина рамки (в диапазоне от 1 до 100) задается во втором параметре (по умолчанию рисуется рамка толщиной 1px). В параметре color можно указать цвет рамки в виде числа от 0 до 255. Если параметр не указан, то рамка будет черного цвета. Если в параметре is_normalize задано значение True, то будет выполнена нормализация диапазона значений от 0 до 255. По умолчанию нормализация не выполняется. Метод возвращает объект UImageGray или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример добавления рамки черного цвета толщиной 3px:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray.load("foto.jpg")
print(img) # UImageGray(width=500, height=333)
img2 = UHelperNP.uimagegray_add_border(img, border_size=3, color=0)
if img2:
print(img2) # UImageGray(width=506, height=339)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Добавить рамку сверху изображения позволяет статический метод uimagegray_add_border_top() из класса UHelperNP. Формат метода:
UHelperNP.uimagegray_add_border_top(<UImageGray>, border_size=50,
color=0, is_normalize=False)
В качестве первого параметра указывается объект UImageGray. Толщина рамки (в диапазоне от 1 до 1000) задается во втором параметре (по умолчанию рисуется рамка толщиной 50px). В параметре color можно задать цвет рамки в виде числа от 0 до 255. Если параметр не указан, то рамка будет черного цвета. Если в параметре is_normalize задано значение True, то будет выполнена нормализация диапазона значений от 0 до 255. По умолчанию нормализация не выполняется. Метод возвращает объект UImageGray или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример добавления рамки черного цвета толщиной 100px сверху изображения:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray.load("foto.jpg")
print(img) # UImageGray(width=500, height=333)
img2 = UHelperNP.uimagegray_add_border_top(img, border_size=100,
color=0)
if img2:
print(img2) # UImageGray(width=500, height=433)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Добавить рамку снизу изображения позволяет статический метод uimagegray_add_border_bottom() из класса UHelperNP. Формат метода:
UHelperNP.uimagegray_add_border_bottom(<UImageGray>, border_size=50,
color=0, is_normalize=False)
В качестве первого параметра указывается объект UImageGray. Толщина рамки (в диапазоне от 1 до 1000) задается во втором параметре (по умолчанию рисуется рамка толщиной 50px). В параметре color можно задать цвет рамки в виде числа от 0 до 255. Если параметр не указан, то рамка будет черного цвета. Если в параметре is_normalize задано значение True, то будет выполнена нормализация диапазона значений от 0 до 255. По умолчанию нормализация не выполняется. Метод возвращает объект UImageGray или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример добавления рамки черного цвета толщиной 100px снизу изображения:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray.load("foto.jpg")
print(img) # UImageGray(width=500, height=333)
img2 = UHelperNP.uimagegray_add_border_bottom(img, border_size=100,
color=0)
if img2:
print(img2) # UImageGray(width=500, height=433)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Добавление паддинга для свертки
Добавить паддинг с отражением вокруг изображения позволяет статический метод uimagegray_add_border_reflect() из класса UHelperNP. Крайние пиксели зеркально отражаются на рамку (при этом самые крайние пиксели не повторяются). Такой паддинг можно использовать для свертки. Формат метода:
UHelperNP.uimagegray_add_border_reflect(<UImageGray>, border_size=1,
is_normalize=False)
В качестве первого параметра указывается объект UImageGray. Толщина рамки (в диапазоне от 1 до 5) задается во втором параметре (по умолчанию рисуется рамка толщиной 1px). Если в параметре is_normalize задано значение True, то будет выполнена нормализация диапазона значений от 0 до 255. По умолчанию нормализация не выполняется. Метод возвращает объект UImageGray или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример добавления паддинга толщиной 3px:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray.load("foto.jpg")
print(img) # UImageGray(width=500, height=333)
img2 = UHelperNP.uimagegray_add_border_reflect(img, border_size=3)
if img2:
print(img2) # UImageGray(width=506, height=339)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Добавить симметричный паддинг вокруг изображения позволяет статический метод uimagegray_add_border_symmetric() из класса UHelperNP. Крайние пиксели симметрично отражаются на рамку (при этом самые крайние пиксели повторяются). Такой паддинг можно использовать для свертки. Формат метода:
UHelperNP.uimagegray_add_border_symmetric(<UImageGray>, border_size=1,
is_normalize=False)
В качестве первого параметра указывается объект UImageGray. Толщина рамки (в диапазоне от 1 до 5) задается во втором параметре (по умолчанию рисуется рамка толщиной 1px). Если в параметре is_normalize задано значение True, то будет выполнена нормализация диапазона значений от 0 до 255. По умолчанию нормализация не выполняется. Метод возвращает объект UImageGray или значение None в случае ошибки. Операция выполняется с помощью библиотеки NumPy. Пример добавления паддинга толщиной 3px:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray.load("foto.jpg")
print(img) # UImageGray(width=500, height=333)
img2 = UHelperNP.uimagegray_add_border_symmetric(img, border_size=3)
if img2:
print(img2) # UImageGray(width=506, height=339)
img2.save("test.png")
else:
print("Ошибка при выполнении операции")
Давайте сравним два способа паддинга:
from unicross_image.uimagegray import UImageGray
from unicross_image.uhelper_np import UHelperNP
img = UImageGray(3, 3)
img.arr = [1, 2, 3,
4, 5, 6,
7, 8, 9]
img2 = UHelperNP.uimagegray_add_border_reflect(img, border_size=2)
print(img2.arr)
"""
[ 9, 8, 7, 8, 9, 8, 7,
6, 5, 4, 5, 6, 5, 4,
3, 2, 1, 2, 3, 2, 1,
6, 5, 4, 5, 6, 5, 4,
9, 8, 7, 8, 9, 8, 7,
6, 5, 4, 5, 6, 5, 4,
3, 2, 1, 2, 3, 2, 1]
"""
img3 = UHelperNP.uimagegray_add_border_symmetric(img, border_size=2)
print(img3.arr)
"""
[ 5, 4, 4, 5, 6, 6, 5,
2, 1, 1, 2, 3, 3, 2,
2, 1, 1, 2, 3, 3, 2,
5, 4, 4, 5, 6, 6, 5,
8, 7, 7, 8, 9, 9, 8,
8, 7, 7, 8, 9, 9, 8,
5, 4, 4, 5, 6, 6, 5]
"""
Класс входит в состав графической библиотеки UImage для Python 3. Описание библиотеки UImage