Я не нашел это в документах. Но необходимо включать, включают медиа формы в шаблон: {{filter.form.media}}.
Функция ImageOps.expand расширяет изображение, но добавляет одинаковое количество пикселей в каждом направлении.
Лучший способ - просто создать новое изображение и вставить:
newImage = Image.new(mode, (newWidth,newHeight))
newImage.paste(srcImage, (x1,y1,x1+oldWidth,y1+oldHeight))
Если производительность является проблемой, сделайте исходное изображение больше, чем необходимо, и обрежьте его после того, как рисунок будет готов.
Вы можете подумать о другом подходе к вашему изображению ... построить его из плиток фиксированного размера. Таким образом, при необходимости расширения вы просто добавляете новые плитки изображений. Когда вы завершите все свои вычисления, вы можете определить окончательный размер изображения, создать пустое изображение этого размера и вставить в него плитки. Это должно уменьшить объем копирования, на которое вы обращаетесь для выполнения задачи.
(Конечно, вы, вероятно, захотите инкапсулировать такое мозаичное изображение в объект, который скрывал бы аспекты мозаики от других слоев кода. )