Django Imagekit处理原始图像

时间:2012-01-19 14:38:46

标签: python django imagekit django-imagekit

使用1.1版我不明白如何预处理原始图像(通过JUST使用imagekit)

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

拥有这样的模型:

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

我如何调整原始图像的大小?这在以前的imagekits中是可能的,但文档暗示我需要另一个modelfield?

3 个答案:

答案 0 :(得分:2)

您可以使用ProcessedImageField

from imagekit.models import ProcessedImageField

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

此课程有in-code documentation,但现在看来它似乎没有被readthedocs'autodoc模块选中。

我重新打开a bug来修复文档。

答案 1 :(得分: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})

答案 2 :(得分: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}
    )