7

AJAX を使用して画像をアップロードする機能を管理者に提供しImageField、選択した部分を (定義済みの寸法比または解像度で) トリミングし、トリミングした画像をデータベースに保存する必要があります。

私は試しdjango-image-croppingてみdjango-ajaximageました。

#Using django-image-cropping
from image_cropping import ImageRatioField
class Alumnus(models.Model):
    photo = models.ImageField(null=True, blank=True)
    cropped_photo = ImageRatioField('photo', '430x360')


#Using django-ajaximage
from ajaximage.fields import AjaxImageField
class Alumnus(models.Model):
    photo = AjaxImageField(
                           upload_to='alumni_photos',
                           max_height=400,
                           max_width=400,
                           crop=True
                         )

AJAX を使用して画像をdjango-ajaximageアップロードしますが、管理者が画像のどの部分をトリミングするかを選択することはできませんdjango-image-cropping。2 つの手順で画像をトリミングします。最初に画像をアップロードし、それをデータベースに保存する必要があります。もう一度、オブジェクトを開いてトリミング部分を選択し、データベースに再度保存する必要がありますが、これは不必要に面倒です。助言がありますか?

4

3 に答える 3

0

django-client-side-image-croppingライブラリは、クライアント側で (Croppie Javascript ライブラリを使用して) 画像を特定のサイズにトリミングします。django-admin サイトと互換性があります。AJAX は使用しません。InMemoryUploadedFile元のファイルを一時的に保存するために使用します。

于 2020-08-26T14:34:22.387 に答える