0

私は標準的な画像モデルを持っています。

class ImageUpload(models.Model):
    image = models.ImageField(upload_to='images/%Y/%m/%d')
    title = models.CharField(max_length=20)    

ただし、モデルを作成したときに、高さと幅のフィールドを作成しませんでした。モデルに何も追加せずに、ビュー内の画像の高さと幅を見つける方法はありますか? そうでない場合、高さと幅のフィールドをモデルに追加して、データベースに既に保存されている画像から自動的に追加するにはどうすればよいですか?

4

3 に答える 3

3

または、 django を使用できますget_image_dimensions

from django.core.files.images import get_image_dimensions

w, h = get_image_dimensions(image) # Returns the (width, height) of an image, given an open file or a path
于 2013-07-07T21:53:07.877 に答える
1

新しくアップロードされた画像については、シグナルを使用してモデルの post_save で処理します。

django.db.models.signals.post_save

サイズを取得するには、PIL を使用して、

img = Image.open(path_to_file)
width, height = img.size

既存の画像の場合は、おそらく、既存のデータベース エントリに対してこれを行うスクリプトを作成するだけで済みます。

何かをスクリプト化する代わりに、幅と高さを見つけて、まだ設定されていない場合はそれらを更新するようにアプリケーションを更新することです。

于 2013-07-07T20:40:32.030 に答える
-1

これには PIL (Python Image Library) を使用できます。

from PIL import Image
img_file = Image.open(path_to_imagefile)
w,h = img_file.size
于 2013-07-08T08:08:23.673 に答える