Если вы знакомы с Python, скорее всего, использовали его для анализа данных, автоматизации или написания скриптов — но едва ли задумывались о редактировании изображений. Оказывается, Python умеет творить чудеса не хуже Photoshop — и для большинства операций достаточно буквально пары строк кода. Обрезка, удаление фона, создание анимации или простое редактирование — всё это можно сделать быстро и легко. Я расскажу о семи простых, но мощных способах, которыми сам пользуюсь для обработки изображений на Python, и приведу рабочие примеры кода для старта.
Почти все примеры используют библиотеку Pillow — это основной инструмент Python для работы с картинками. Для некоторых трюков пригодятся также NumPy и rembg — о них расскажу отдельно. Все необходимые пакеты устанавливаются одной простой командой в терминале:
Мой личный топ — 9 Python-библиотек, которые я ставлю первым делом на любой новый компьютер
Без них работа с данными в Python уже не та.
Как я меняю размер, обрезаю и поворачиваю изображения в Python
Главные базовые операции любого графического редактора
Самые простые задачи — такие как изменение размера, кадрирование и поворот — в Pillow реализуются очень просто. Подключаете модуль Image, пишете пару строк — и всё готово. Вот пример кода, просто замените путь к файлу на свой ("photo.jpg").
Automate The Boring Stuff with Python
Automate the Boring Stuff with Python — это руководство, понятное даже новичку, по автоматизации любой рутины на Python. Вы научитесь писать скрипты для переименования файлов, парсинга сайтов, работы с таблицами, почтой и многим другим.
Опыт программирования для старта не требуется.
Как с помощью Python добавлять надписи и фигуры к изображениям
Подписи и украшения — теперь легко делать прямо в коде
В Pillow есть модуль ImageDraw, который превращает вашу картинку в настоящий холст. Вы можете добавлять текст, рисовать прямоугольники, окружности, линии и прочие элементы в любом месте, настраивая цвет и размер так, как захотите.
Для этого нужна всего одна строка: ImageDraw.Draw(img). Она «привязывает» объект рисования к вашему изображению. Дальше любая команда — например, draw.rectangle() или draw.text() — тут же меняет сами пиксели. После сохранения всё останется на картинке навсегда.
Если текст не появляется, проверьте, установлен ли у вас шрифт "arial.ttf". Нет? Просто используйте любой другой шрифт, который есть в системе — и всё заработает.
Как я управляю пикселями изображения напрямую через Python
Вот где вспоминаешь: картинка — это просто набор чисел!
Здесь нужно взглянуть на фото иначе: всё изображение на компьютере — это сетка из чисел. Каждый пиксель — это три значения: красный, зелёный, синий (от 0 до 255). Например, чисто красный — [255, 0, 0], белый — [255, 255, 255], чёрный — [0, 0, 0].
С помощью NumPy вы превращаете картинку в массив с тремя измерениями: высота × ширина × цветовые каналы. После этого можно делать с числами что угодно — например, чтобы получить негатив, нужно просто вычесть каждое значение из 255.
Когда поймёте, что картинка — это всего лишь большая таблица чисел, открываются безграничные возможности: от тонировки до изменения яркости и контрастности или перевода в чёрно-белый режим. По сути, вся обработка — чистая математика и игра с массивами.
Почему NumPy — основа любой серьёзной работы с данными на Python
NumPy позволяет проводить сложные вычисления мгновенно.
Фильтры, размытие и коррекция цвета — всё работает в Python
Вот тут начинается настоящее редактирование фото
На этом этапе Python превращается почти в профи-редактор: с помощью Pillow можно размывать изображение, делать его чётче, переводить в чёрно-белый режим, а также настраивать яркость и контраст. Для этого используются модули ImageFilter и ImageEnhance — и даже не нужно напрямую обращаться к массивам чисел.
Принцип работы простой: размытие усредняет пиксели и делает изображение мягче, повышение резкости подчёркивает детали, а чёрно-белый режим сводит цветовые каналы в одну шкалу яркости без цвета.
В коде все эффекты применяются отдельно, но если хочется скомбинировать сразу несколько — просто передавайте результат одной операции в следующую.
Как я мгновенно удаляю фон с фото с помощью Python
Удаляем всё лишнее — никаких онлайн-сервисов не потребуется!
Здесь в работу включается искусственный интеллект. Библиотека rembg сама определяет, где находиться основной объект, а где фон, и возвращает картинку с прозрачным фоном в формате PNG.
И сам код занимает всего пару строчек:
В первый раз rembg скачает небольшую модель и дальше будет работать полностью локально. На выходе получаете PNG с альфа-каналом (прозрачным фоном) — его легко применять в дизайне и накладывать на любые другие картинки.
Лучше всего rembg работает, если на фото отчётливо виден человек или предмет. На сложных фонах итог иногда бывает не идеален.
Если появляется ошибка типа "onnxruntime", просто установите нужный пакет командой pip install onnxruntime — и всё решится.
Не доверяйте свои фото сторонним — делайте удаление фона у себя на компьютере через Python
Личный скрипт — гарантия приватности и полного контроля над вашими изображениями.
Как я совмещаю картинки и работаю со слоями через Python
Настоящие «слои» — только теперь полностью в вашем распоряжении
Композиция — это когда вы «наклеиваете» одно изображение поверх другого, как слои в Photoshop. В Pillow для этого есть метод paste(). Если у поверхностного изображения прозрачный фон (PNG с альфа-каналом), его можно использовать как маску — так, чтобы прозрачные участки не перекрывали оригинальную картинку. Эта техника подходит для водяных знаков, картинок в картинке, создания интерфейсов и прочих задач.
Аргумент mask=image_name рассказывает Pillow учитывать прозрачность при наложении. Без этого прозрачные места наслоения закроются фоновым цветом.
Как я превращаю обычное фото в анимированный GIF с помощью Python
Ваши фото оживают — магия программирования своими руками!
Настоящие мультики, где кот начинает бегать по экрану, Python не нарисует. Но сделать плавный зум, эффект появления или исчезновения, а также мягкую смену кадров очень просто! Мой способ — генерировать серию новых кадров с маленькими изменениями, а затем собрать из них GIF.
Пример: берём фото, на каждом новом кадре чуть увеличиваем его, аккуратно обрезаем по центру, чтобы размер не менялся — получается плавное приближение. Обычно хватает около 20 кадров, увеличивая масштаб на 2% по шагу. Метод save() с параметром save_all=True соединяет все кадры в одну анимацию. По той же логике можно делать панорамирование, заливку цветом, менять яркость и творить любые эффекты, где каждый последующий кадр чуть отличается от предыдущего.
Если у вас уже есть последовательность кадров с двигающимся объектом (например, снимаете, как кот прыгает), всё это можно «сшить» в анимацию прямо на Python.
Как я делаю AI-GIF и видео в пару кликов с помощью Stable Diffusion
Оскара не обещаю, но попробуйте — и ваши возможности удивят даже вас!
Python — это портал в мир цифрового творчества
Обрабатывать изображения на Python — реально просто, и всё интересно с первой попытки! Почему стоит освоить этот подход вместо классического редактора? Ответ прост — автоматизация. Недавно, к примеру, я сделал скрипт, который на рабочий стол автоматически выводит мой актуальный список дел — вместо фоновой картинки всегда свежие задачи. Без кода такое не организовать, а с Python можно придумывать всё, что угодно, под себя — и продуктивность, и творчество только выигрывают!
Я доверил своему рабочему столу напоминания — теперь про дедлайны просто не вспоминаю (с подробным примером)
Отдал заботу о делах картинке — и это реально работает!
Если вам понравилась эта статья, подпишитесь, чтобы не пропустить еще много полезных статей!
Премиум подписка - это доступ к эксклюзивным материалам, чтение канала без рекламы, возможность предлагать темы для статей и даже заказывать индивидуальные обзоры/исследования по своим запросам!Подробнее о том, какие преимущества вы получите с премиум подпиской, можно узнать здесь
Также подписывайтесь на нас в:
- Telegram: https://t.me/gergenshin
- Youtube: https://www.youtube.com/@gergenshin
- Яндекс Дзен: https://dzen.ru/gergen
- Официальный сайт: https://www-genshin.ru