0

現在、ユーザーに写真をアップロードしてもらい、幅 210 に縮小するプロジェクトに取り組んでいます。

これを行う最善の方法は何ですか?

    from django.db import models
    from django.contrib.auth.models import User
    from imagekit.models import ImageSpecField
    from imagekit.processors import ResizeToFill, Adjust

    class Photo(models.Model):
        photo_title = models.CharField(max_length=255, null=True, blank=True)
        original = models.ImageField(upload_to='photos/%Y/%m/%d')
        main_page = ImageSpecField([ResizeToFill(210)], image_field='original', format='JPEG', options={'quality': 100})

        def __unicode__(self):
            return self.photo_title

これは main_page 画像を生成しないため、photo.main_page はテンプレートに取り込まれません。

4

2 に答える 2

1

サイズ変更された写真をテンプレートに表示することだけが必要な場合は、easy-thumbnailsを使用することをお勧めします。

これにより、モデルは次のようになります。

class Photo(models.Model):
    photo_title = models.CharField(max_length=255, null=True, blank=True)
    original = models.ImageField(upload_to='photos/%Y/%m/%d')

そしてテンプレートで:

{% load thumbnail %}
<img src="{% thumbnail photo.original 210 crop quality=100 %}" alt="">
于 2012-11-03T22:46:23.267 に答える
1

まあ、これは余分なものなしで機能するものです。

https://github.com/un1t/django-resized

次のように簡単:

from django_resized import ResizedImageField

class Photo(models.Model):
    photo_title = models.CharField(max_length=255, null=True, blank=True)
    original = ResizedImageField(max_width=210, upload_to='photos/%Y/%m/%d')

元の写真と私の写真の両方をさまざまなサイズで持つ新しいモデルを作成します。

于 2012-11-04T00:36:43.753 に答える