Django Imagekit обрабатывает исходное изображение - PullRequest
1 голос
/ 19 января 2012

С версией 1.1 я не понимаю, как я могу предварительно обработать исходное изображение (просто с помощью imagekit)

https://github.com/jdriscoll/django-imagekit/blob/develop/README.rst

Имея такую ​​модель:

class Photo(models.Model):
   original = models.ImageField(etcetera)
   thumbnail = ImageSpec(etcetera)

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

Ответы [ 3 ]

2 голосов
/ 31 января 2012

Вы можете использовать ProcessedImageField:

from imagekit.models import ProcessedImageField

class Photo(models.Model):
    original = ProcessedImageField(etcetera)

В этом классе есть документация в коде , но похоже, что readthedocs * не используется1008 * 'модуль autodoc прямо сейчас.

Я снова открыл ошибка , чтобы исправить документацию.

0 голосов
/ 21 сентября 2015

Ниже будет делать то, что вы ищете. Вы также можете добавить другие процессоры в список процессоров. Процессоры запускаются до сохранения образа.

from imagekit.models import ProcessedImageField
from imagekit.processors import ResizeToFit

class Photo(models.Model):
    original = ProcessedImageField(
        upload_to='images/%Y%m',
        format=JPEG,
        processors=[ResizeToFit(200, 100)],
        options={'quality': 90}
    )
0 голосов
/ 20 января 2012

Глядя здесь: https://github.com/jdriscoll/django-imagekit/blob/master/imagekit/processors/resize.py похоже, класс Fit - это то, что вам нужно.

Не проверено, но я подозреваю, что это что-то вроде:

from django.db import models
from imagekit.models import ImageSpec
from imagekit.processors import resize

class Photo(models.Model):
    original_image = models.ImageField(upload_to='photos')
    thumbnail = ImageSpec([resize.Fit(50, 50)], image_field='original_image',
            format='JPEG', options={'quality': 90})
...