Превратить изображение в силуэт (Turn an image into a silhouette)
Перейти к навигации
Перейти к поиску
Чтобы преобразовать изображение в цветной силуэт, мы можем использовать im.Matrix с помощью этой функции (и присоединенной вспомогательной функции):
init:
python:
def silhouette_matrix (r,g,b,a=1.0):
return im.matrix((0, 0, 0, 0, r,
0, 0, 0, 0, g,
0, 0, 0, 0, b,
0, 0, 0, a, 0,))
def silhouetted (filename, r,g,b, a = 1.0):
return im.MatrixColor (Image (filename), silhouette_matrix (r,g,b,a))
Что вышеуказанная матрица сообщает:
- Умножает RGB значения исходного изображения на 0, затем добавляет заданный цвет;
- Умножает альфа-канал на 'a' (значение по умолчанию = 1.0). По умолчанию сохранить альфа-канал как есть.
После того как эта функция определена в блоке init, как указано выше, вы можете делать вещи, как этот несложный светящийся эффект:
# Это лого из обучающей игры (требуется для этого примера)
image logo = "logo.png"
# а вот версия, преобразованная в белый силуэт
image logo_whiteout = silhouetted ('logo.png',1,1,1)
label start:
# сейчас мы используем немного ATL для наложения свечения на лого и его цикл alpha.
show logo:
xalign 0.5 yalign 0.0
show logo_whiteout:
xalign 0.5 yalign 0.0 alpha 0.0
ease 1.0 alpha 0.95
ease 1.0 alpha 0.0
repeat
"Здесь у нас замечательное светящееся лого!!\n\n{b}Тадааа!{/b}"
Источник[править | править код]
Статья "Turn an image into a silhouette" на английском языке
На главную страницу | Книга рецептов Энциклопедии Ren'Py | Книга рецептов Ren'Py | Вернуться к началу статьи |