如何从 django 图像字段到 PIL 图像并返回?

2024-04-05

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

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

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

edit

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]:

为了从 PIL 图像转到 Django ImageField,我使用了 falsetru 的答案,但我必须将其更新为 Python 3。

首先,StringIO 已被 io 取代,如下所示:python3中的StringIO https://stackoverflow.com/questions/11914472/stringio-in-python3

第二,当我尝试时io.StringIO(),我收到一条错误消息:"*** TypeError: string argument expected, got 'bytes'"。所以我把它改为io.BytesIO()这一切都奏效了。

from PIL import Image
from io import BytesIO
from django.core.files.base import ContentFile

f = BytesIO()
try:
    pil_image_obj.save(f, format='png')
    model_instance.image_field.save(model_instance.image_field.name,
                                   ContentFile(f.getvalue()))
#model_instance.save()
finally:
    f.close()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 django 图像字段到 PIL 图像并返回? 的相关文章

随机推荐

  • 生成详细输出的良好做法是什么?

    生成详细输出的良好做法是什么 目前 我有一个功能 bool verbose int setVerbose bool v errormsg verbose v if verbose v return 0 else return 1 每当我想生
  • 灵活地移动现有领域/行为[重复]

    这个问题在这里已经有答案了 如何将现有字段 IDublinCore rights 移动到特定字段之后的另一个字段集中 无需编写我自己的行为 IDublinCore 的副本 Rights 字段应出现在 image caption 自己的内容类
  • 如何向 QFileSystemModel 添加自定义角色

    我想向 QFileSystemModel 添加自定义角色 可能是派生模型 我想使用此角色来保存复选框的选中状态 该状态显示在自定义委托中的文件名旁边 如何才能做到这一点 我已经使用过使用示例Qt Quick Controls 文件系统浏览器
  • 将 onPostExecute 应用于 onClickListener

    我已经制作了可以使用的程序AsyncTask它在程序执行时打印 JSON 数据列表 但问题是我希望它在按下按钮时执行 我如何得到结果AsyncTask进入我的onClickButtonListener 如何从 onClick 调用 Asyn
  • 如何使用并行插入语句在 MySQL 表中插入巨大的 Pandas Dataframe?

    我正在开发一个项目 其中我必须编写一个包含数百万行和大约 25 列 大部分为数字类型 的数据框 我在用Pandas DataFrame 到 SQL 函数 https pandas pydata org pandas docs version
  • 如何在 Excel 工作表中插入锁定符号

    这个问题在这里已经有答案了 我知道锁符号 的unicode是128275 When I copy this symbol from the browser and paste into excel it appears like this
  • Android API 21 创建自定义主密钥

    我正在尝试创建一个加密的SharedPreferences实施 但给出的例子安卓网站 https developer android com topic security data适用于 API 23 及以上版本 具体来说 问题是使用此代码
  • 什么是双因素身份验证?

    我的任务是寻找和评估一些用于我们的产品之一的身份验证库 某些解决方案推动的销售功能之一是 双因素身份验证 这个方法是什么 它是如何工作的 是否有更好的方法 我猜是三因素身份验证 双因素身份验证是使用两个因素来验证一个人 或有时是一个进程 这
  • 在其他方法中使用 __construct() 中的变量

    我定义了一个新变量 construct 我想在另一个地方使用它function这个的class 但我的变量在另一个函数中是空的 这是我的代码 class testObject function construct global c data
  • 以下 C# 代码出现不一致的可访问性错误。为什么?

    下面的c 代码有什么问题吗 编译器报告此错误 可访问性不一致 参数类型 ClassLibrary1 Interface1 比方法 ClassLibrary1 Class1 Class1 ClassLibrary1 Interface1 的可
  • 如何以编程方式将作业添加到 hudson 的视图中

    我有一个 Java 程序 用于控制一组 hudson 服务器自动生成的作业 使用 hudson 远程 API 创建 删除或更新作业 配置 是没有问题的 我还设法创建哈德逊视图并为哈德逊视图创建一个新作业 但我仍然需要知道如何将现有作业添加到
  • 子集不是基于精确匹配,而是基于 R 中的部分匹配

    这是这里的后续问题 根据前缀和后缀对字符串进行子集化 https stackoverflow com questions 21407361 subsetting a string based on pre and suffix 当你有这个命
  • TinyMCE 4 禁用清理 html

    如何在 TinyMCE 4 x 中禁用 HTML 代码的自动清理 当我从 WORD 复制文本时 TinyMCE 会删除样式 tinyMCE init cleanup false verify html false
  • UIView drawHierarchy 创建黑色图像

    我正在尝试转换我的习惯UIView into UIImage使用核心图形 但有时它会变成黑色 我的整个UIImage看起来像黑色图像 我注意到如果我的身高UIView无论生成的宽度是多少 都超过 4096UIImage会变黑 注1 我的习惯
  • VB6 内存限制

    我目前正在支持一个在多台服务器上运行的 VB6 应用程序 我们正在替换该应用程序 但这是一个缓慢的过程 谁能告诉我VB6进程可以寻址的最大内存量是多少 我们正在使用多种操作系统 Windows Server 2003 32位 Windows
  • 将文件内容存储在数据库中

    我正在制作一个模型 其中我有一个FileField 我想将文件内容存储在数据库列中 而不是文件路径中 有什么建议么 无视那些反对者 如果您想完全控制内容 请将文件放入数据库的 blob 字段中 我通常还将文件名保留在单独的字段中 以便我可以
  • 如何为任何 liquibase 格式的 sql 指定 validchecksum?

    我遇到了 liquibase 的问题 因此 我在其中一个变更集中的 sql 命令中犯了一个错误 现在 每当我尝试升级部署时 升级都会由于校验和错误而失败 所以我想做 validCheckSum ANY 解决方法 但遇到了这个不起作用的问题
  • 为浮点类型重载运算符%

    我试图重载运算符 因为你不能在双精度类型上使用模数 float a 5 0 float b 5 0 a a b not allowed 我试图用这种函数重载运算符 template lt gt MyClass MyClass
  • 为什么 Ruby 的 1000 个哈希键和值对的数组总是按特定顺序排列?

    假设有一个包含 1000 个哈希值的数组 其中的对如下 id gt 1 name gt something created at gt 2010 08 18 当我使用循环打印出这 1000 条记录时 按理说 散列的键 值对顺序无法保证 但打
  • 如何从 django 图像字段到 PIL 图像并返回?

    给定 django 图像字段 如何创建 PIL 图像 反之亦然 简单的问题 但很难谷歌 我将使用 django imagekit 的处理器来旋转已存储为模型属性的图像 edit In 41 m image 1 class Out 41 dj