Добрый день, уважаемые читатели. Недавно я столкнулся с проблемой создания файла с расширением gif
, используя программный интерфейс, реализован на python. В этой статье мы обсудим небольшой пример, с помощью которого мы создадим интересную «гифку».
Подпишись на группу Вконтакте и Телеграм-канал. Там еще больше полезного контента для программистов.
А на YouTube-канале ты найдешь обучающие видео по программированию. Подписывайся!
PIL для обработки изображений
Для решения нашей проблемы было решено использовать очень популярный пакет — PIL
(Python Image Library).
Сама задумка крайне примитивна — создать «гифку», основываясь на одной фотографии, применяя к ней гауссово размытие различного «радиуса». Для начала импортируем те немногочисленные инструменты, которые нам понадобятся.
from PIL import Image from PIL import ImageFilter
Теперь загрузим изображение. Я выбрал красивое изображение змеи (красивое оно по моему скромному мнению, не более).

Загрузим изображение, использовав метод Image.load
.
original_image = Image.open('snake.jpg')
Также нам нужно создать список, где мы будем хранить «заблюренные» фотографии.
images = list()
Теперь реализуем цикл, который будет применять фильтрацию к изображению и добавлять его в наш список. Чтобы применить фильтр, мы воспользуемся методом filter, куда в качестве аргумента передаем экземпляр класса GaussianBlur
.
for radius in range(0, 20): blured_image = original_image.filter(ImageFilter.GaussianBlur(radius=radius)) images.append(blured_image)
Теперь провернем интересный фокус — мы совместим список изображений с его перевернутой версией для того, чтобы создать циклический эффект.
images.extend(reversed(images))
А далее нам остается лишь сохранить изображение, передав туда следующие параметры:
- имя файла
- список фотографий, которые также нужно сохранить (
append_images
) - кол-во повторений (
loop
) - длительность (
duration
)
В нашем случае команда сохранения выглядит следующим образом:
original_image.save('snake_blur.gif', append_images=images, loop=3, duration=100, save_all=True)
В результате мы получаем файл с расширением .gif, который вы с легкостью сможете открыть в том же Google Chrome. Увы, здесь я не смогу её продемонстрировать :(
Заключение
В этой совсем небольшой статье мы затронули вопрос создания gif, используя язык программирования python. Также мы научились использовать гауссово размытие и совмещать обе операции в одну.
Советую вам прочитать статью «Поговорим о странностях питона», где я подался в некую программную философию, обсуждая некоторые странности, которые я заметил при работе с Python.
А также подписывайтесь на группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.