gpt4 book ai didi

django - 如何从Django图像字段转换为PIL图像并返回?

转载 作者:行者123 更新时间:2023-12-04 00:03:59 26 4
gpt4 key购买 nike

给定django图像字段,如何创建PIL图像,反之亦然?

简单的问题,但很难谷歌:(

(我将使用django-imagekit的处理器旋转已存储为模型属性的图像。)

编辑

In [41]: m.image_1.__class__
Out[41]: django.db.models.fields.files.ImageFieldFile

In [42]: f = StringIO(m.image_1.read())

In [43]: Image.open(f)
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
<ipython-input-43-39949b3b74b3> in <module>()
----> 1 Image.open(f)

/home/eugenekim/virtualenvs/zibann/local/lib/python2.7/site-packages/PIL/Image.pyc in open(fp, mode)
2023 pass
2024
-> 2025 raise IOError("cannot identify image file")
2026
2027 #

IOError: cannot identify image file

In [44]:

最佳答案

第一个问题:

import Image

pil_image_obj = Image.open(model_instance.image_field)


第二个问题:

from cStringIO import StringIO
from django.core.files.base import ContentFile

f = StringIO()
try:
pil_image_obj.save(f, format='png')
s = f.getvalue()
model_instance.image_field.save(model_instance.image_field.name,
ContentFile(s))
#model_instance.save()
finally:
f.close()


更新

根据OP的评论,用 import Image替换 from PIL import Image解决了他的问题。

关于django - 如何从Django图像字段转换为PIL图像并返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22035833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com