maximkv25
@maximkv25
web-developer

Как в pillow сделать эффект тени?

Как сделать эффект вот такой вот тени?
bc79615bbaf34b018cec771e9ce92681.jpg
на первой видно небольшое затемнение по краям
00aba57bdd2c4e32b8f503e4da1ee25c.jpg
оригинал
  • Вопрос задан
  • 772 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
from PIL import Image, ImageFilter

def drop_shadow(image, iterations=3, border=8, offset=(5,5), background_colour=0xffffff, shadow_colour=0x444444):
    shadow_width  = image.size[0] + abs(offset[0]) + 2 * border
    shadow_height = image.size[1] + abs(offset[1]) + 2 * border
    
    shadow = Image.new(image.mode, (shadow_width, shadow_height), background_colour)
    
    shadow_left = border + max(offset[0], 0)
    shadow_top  = border + max(offset[1], 0)
    shadow.paste(shadow_colour, [shadow_left, shadow_top, shadow_left + image.size[0], shadow_top  + image.size[1]])
    
    for i in range(iterations):
        shadow = shadow.filter(ImageFilter.BLUR)

    img_left = border - min(offset[0], 0)
    img_top  = border - min(offset[1], 0)
    shadow.paste(image, (img_left, img_top))

    return shadow
    

drop_shadow(Image.open('boobs.jpg')).save('shadowed_boobs.png')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы