В Python, Библиотека изображений Python 1.1.6, как я могу развернуть холст без изменения размеров?

Я не нашел это в документах. Но необходимо включать, включают медиа формы в шаблон: {{filter.form.media}}.

23
задан MetaHyperBolic 15 October 2009 в 14:23
поделиться

2 ответа

Функция ImageOps.expand расширяет изображение, но добавляет одинаковое количество пикселей в каждом направлении.

Лучший способ - просто создать новое изображение и вставить:

newImage = Image.new(mode, (newWidth,newHeight))
newImage.paste(srcImage, (x1,y1,x1+oldWidth,y1+oldHeight))

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

28
ответ дан 29 November 2019 в 01:49
поделиться

Вы можете подумать о другом подходе к вашему изображению ... построить его из плиток фиксированного размера. Таким образом, при необходимости расширения вы просто добавляете новые плитки изображений. Когда вы завершите все свои вычисления, вы можете определить окончательный размер изображения, создать пустое изображение этого размера и вставить в него плитки. Это должно уменьшить объем копирования, на которое вы обращаетесь для выполнения задачи.

(Конечно, вы, вероятно, захотите инкапсулировать такое мозаичное изображение в объект, который скрывал бы аспекты мозаики от других слоев кода. )

6
ответ дан 29 November 2019 в 01:49
поделиться
Другие вопросы по тегам:

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