본문 바로가기

web/Django

디비에 있는 이미지를 리사이즈하여 다른 컬럼에 저장( django )

#python 2.7

#db mysql 

#모델 정의

# class img(models.Model):

 image = models.ImageField(upload_to="attaches/%Y/%m/%d")

#  thumbnail  = models.ImageField(upload_to="attaches/%Y/%m/%d")


import Image

from cStringIO import StringIO

from django.core.files.base import ContentFile


#img 모델의 image 컬럼의 데이터를 이미지로 불러옴

image_temp = Image.open(img.image)

#리사이즈

resized_image = image_temp.resize((300, 200), Image.ANTIALIAS)

f = StringIO()

try:

#파일로 저장

resized_image.save(f, image_temp.format)

s = f.getvalue()

#칼럼에 저장

img.thumbnail.save(img.image.name,ContentFile(s))

finally:

f.close()