Превратить изображение в силуэт (Turn an image into a silhouette)

Материал из Ren'Py Wiki
Перейти к навигации Перейти к поиску

Чтобы преобразовать изображение в цветной силуэт, мы можем использовать 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 Вернуться к началу статьи