django - сохранить копию изображения с измененным размером при загрузке (используя сайт администратора) - PullRequest
0 голосов
/ 13 ноября 2009

Я создаю сайт для клиента, который должен поддерживать загрузку изображений (художник) через интерфейс администратора. Поскольку большинство изображений довольно высокого разрешения, я хотел создать копии большого пальца изображения для отображения на странице галереи после загрузки. Загрузка отлично работает с элементом forms.ImageFile, но я искал несколько идей о том, как сделать реальное изменение размера и связывание между большим пальцем и изображениями истинного размера. У меня была идея провести класс модели как для изображения, так и для большого пальца изображения:

from django.db import models

class Image(models.Model):
    """a true size image"""
    image = models.ImageFile(upload_to="images")
    desc = models.CharField(max_length=256)

    class Meta:
        db_table = "images"

class ImageThumb(models.Model):
    """"a thumbnail of an actual image"""
    real_image = models.ForeignKey('Image')
    image = models.ImageField(upload_to="images/thumbs")

    class Meta:
        db_table = "thumbs"

Эта часть, на которой я застрял, заключается в том, как изменить размер реального изображения после загрузки (пил? Как?), И я мог бы, вероятно, использовать некоторую полировку на своих моделях - любая помощь будет отличной. Спасибо.

Ответы [ 2 ]

3 голосов
/ 13 ноября 2009

Есть отличный плагин под названием sorl-thumbnail , который имеет дело с генерацией миниатюр - не пытайтесь делать это самостоятельно. sorl-thumbnail очень настраиваемый, так что, скорее всего, он сделает все, что вы захотите.

Если это не сработает, то фотолог также очень хорош (фотолог больше ориентирован на управление фотоальбомами, нежели просто на создание миниатюр).

0 голосов
/ 10 мая 2010

См. Также easy-thumbnails и aino-convert . Они могли бы быть хорошей ставкой, так как sorl-thumbnail может развиваться не очень активно с этого момента .

...