将PIL的“image”类中的图像写入模型实例的ImageFile字段

2024-09-30 14:21:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想加载一个图像并使用Python图像库对其进行操作,然后将其存储在模型的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)

Tags: to图像imageimportpngmodelssavetf
1条回答
网友
1楼 · 发布于 2024-09-30 14:21:54

你可以这样做:

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或其他缓冲对象来节省将临时文件写入硬盘的额外步骤。在

this是同一个问题吗?公司名称:

相关问题 更多 >