создание поля изображения, которое можно обрезать - как хранить данные виджета? - PullRequest
3 голосов
/ 04 июля 2011

Мне интересно, как наилучшим образом реализовать обрезку ImageField в Django.

В основном я хотел бы загрузить изображения и обрезать их. Например, используя imagAreaSelect

Первый подход, который пришел мне в голову, заключался в создании ImageField и некоторых мета-полей в моей модели для хранения соотношения кадрирования, ширины и высоты моего выбора. Но мне интересно, есть ли более четкие способы решения этой проблемы и дальнейшей инкапсуляции поведения обрезки.

Так что, в конечном итоге, я хотел бы обернуть желаемое поведение в виджет. Хотя проблема, которую я вижу, состоит в том, что виджеты обычно отображаются в одно поле базы данных.

Так что мне интересно, выполнимо ли это вообще и как лучше сохранить данные моего изображения?

Ответы [ 2 ]

3 голосов
/ 03 сентября 2012

В итоге мы создали приложение многократного использования для обрезки изображений: django-image-cropping

1 голос
/ 04 июля 2011

Есть несколько способов сделать это. Одним из способов является вывод имени обрезанного изображения из имени обрезанного изображения. Поэтому, если у вас есть ImageField и есть изображение с именем uploads / images / family.jpg, ваш CropableImageWidget может предполагать, что обрезанное изображение хранится в uploads / images / cropped / family.jpg.

Другой способ - создать собственный тип поля базы данных, в котором будет храниться сериализованное представление всех файлов, которые вы создаете во время обрезки. Может быть через JSON.

...