我想加载一个图像并使用Python Imaging Library对其进行操作,然后将其存储在模型的ImageField中。以下概述了我正在尝试做的事情,减去操纵:
#The model
class DjInfo(models.Model):
dj_name = models.CharField(max_length=30)
picture = models.ImageField(upload_to="images/dj_pictures")
email_address = models.EmailField()
#What I'm trying to do:
import tempfile
import Image
from artists.models import DjInfo
image = Image.open('ticket.png')
tf = tempfile.TempFile(mode='r+b')
image.save(tf, 'png')
dji=DjInfo()
dji.picture.save('test.png', tf)
答案 0 :(得分:-1)
你可以这样做:
image = Image.open('test.png')
tf = tempfile.TemporaryFile(mode='r+b')
name = tf.name
del tf
image.save(name, 'png')
dji=DjInfo()
dji.picture.save('test.png', name)
但我怀疑使用cStringIO或其他缓冲区对象有更好的方法可以节省将临时文件写入HDD的额外步骤。
this是同一个问题吗?: