2012-01-19 3 views
1

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

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

Имея модель, как это:

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

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

ответ

2

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

from imagekit.models import ProcessedImageField 

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

Существует in-code documentation в этом классе, но, похоже, это не подобран readthedocs ' autodoc прямо сейчас.

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

0

Означает здесь: 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}) 
+0

Нет вот только процессор для миниатюры .. Я хочу, чтобы изменить размер исходного изображения на загрузке .. раньше это возможно с предварительным процессором в предыдущем Джанго imagekits .. Конечно, я могу использовать некоторые пользовательские обработки PIL , но я был бы удивлен, если это невозможно, просто используя imagekit .. –

+0

Простите об этом. Я понимаю, о чем вы сейчас спрашиваете. Вы пробовали это: http://stackoverflow.com/questions/2845000/resizing-image-on-upload-with-django-imagekit или эта методология, о которой вы говорите, больше не работает? – sgallen

0

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

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} 
    )