Задать вопрос

Как вставить изображение в изображение, получая мем?

Нужен код, где типо две картинки склеиваются - первая под второй.
Если первая картинка меньше или больше второй, то она сжимается или расширяется.

Вот такой код получился:

from PIL import Image
 
im1 = Image.open('morgen asterix1.jpg') 
im2 = Image.open('morgen asterix2.png')
 
im1.paste(im2)
im1.save('morgen asterix.jpg')
 
im1.close()
im2.close()


spoiler
6150df0e75e6e804187272.png
6150df14c520a914301300.png
6150df204673b427338302.png
  • Вопрос задан
  • 173 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Да чего тут думать.
1. Определи список изображений, которые хочешь склеить, и загрузи их.
2. Приведи их все к одной ширине вызовом Image.resize(). Как будешь целевую ширину определять, решай сам. Можно ориентироваться по размеру наибольшего из изображений.
3. Просуммируй высоты (для отмасштабированных вариантов, не для исходных!), создай новое изображение, с такой же шириной и суммарной высотой (чтобы все кадры поместились).
4. Используй метод Image.paste() для вставки кадра в целевое изображение. Он позволяет указывать вторым параметром позицию изображения - куда именно попадёт левый верхний угол вставляемого изображения. Так что начинаешь с точки (x=0,y=0), и после каждой вставки прибавляешь к y высоту только что вставленного изображения (плюс зазор, если хочешь).
5. Сохраняешь итоговое изображение вызовом Image.save().
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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