-
Notifications
You must be signed in to change notification settings - Fork 4
/
convertor_cover_img.py
62 lines (46 loc) · 2.21 KB
/
convertor_cover_img.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
from PIL import Image
"""
Модуль для стилизации изображений.
add_alpha_canal - Добавляет изображению прозрачность в указанном
размере, оот 0 до 256
convert_jpg_to_png - Конвертирует изображение из .jpg в .png
и сохраняет его в том же файле
create_combine_image - Накладывает изображение с Альфа каналом
на обычное изображение.
Пример использования:
add_alpha_canal('2.png', 'Filter-1.png', 128)
convert_jpg_to_png('123.jpg', 'Photo-1.png')
create_combine_image('Photo-1.png', 'Filter-1.png', 'Combine-1.png')
"""
def convert_jpg_to_png(photo_jpg):
"""
Конвертирует изображение из jpg в png
Возвращаем новый путь к картинке.
"""
img = Image.open(photo_jpg)
photo_png = photo_jpg.replace('.jpg', '.png')
img.save(photo_png)
return photo_png
def add_alpha_canal(source_png, alpha_value=128):
"""Добавляет png изображению, Альфа канал."""
img = Image.open(source_png)
img.putalpha(alpha_value)
img.save(source_png)
def create_combine_image(photo_png, filter_png, result_img):
"""
Наложение фильтра на изображение.
Изменяет размер фильтра, подстраивая его под
изображение, накладывает фильтр на изображение.
photo_png - изображение без прозрачности
filter_png - изображение с прозрачностью
"""
# Открываем изображение
background = Image.open(photo_png)
foreground = Image.open(filter_png)
# Получаем их размеры
back_width, back_height = background.size
# Подстраиваем фильтр под изображение
foreground = foreground.resize((back_width, back_height))
# Накладываем фильтр на фото и сохраняем
background.paste(foreground, (0, 0), foreground)
background.save(result_img)