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

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

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

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

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

Войти через центр авторизации
Похожие вопросы