当前位置: 首页 > 面试题库 >

如何将PIL`Image`转换为Django`File`?

蒋英博
2023-03-14
问题内容

我试图将UploadedFile一个PIL Image对象转换为缩略图,然后将Image我的缩略图函数返回的PIL 对象转换为一个File对象。我怎样才能做到这一点?


问题答案:

无需写回文件系统,然后通过打开调用将文件带回内存的方法是利用StringIO和Django InMemoryUploadedFile。这是有关如何执行此操作的快速示例。假设您已经有一个名为“ thumb”的缩略图:

import StringIO

from django.core.files.uploadedfile import InMemoryUploadedFile

# Create a file-like object to write thumb data (thumb data previously created
# using PIL, and stored in variable 'thumb')
thumb_io = StringIO.StringIO()
thumb.save(thumb_io, format='JPEG')

# Create a new Django file-like object to be used in models as ImageField using
# InMemoryUploadedFile.  If you look at the source in Django, a
# SimpleUploadedFile is essentially instantiated similarly to what is shown here
thumb_file = InMemoryUploadedFile(thumb_io, None, 'foo.jpg', 'image/jpeg',
                                  thumb_io.len, None)

# Once you have a Django file-like object, you may assign it to your ImageField
# and save.
...

让我知道是否需要进一步说明。我现在正在我的项目中进行此工作,并使用django-storages上传到S3。这花了我大部分时间在这里正确地找到解决方案



 类似资料:
  • 问题内容: 我试图将一个PIL对象转换为缩略图,然后将我的缩略图函数返回的PIL对象转换为一个对象。我怎样才能做到这一点? 问题答案: 无需写回文件系统,然后通过打开调用将文件带回内存的方法是利用StringIO和Django InMemoryUploadedFile。这是有关如何执行此操作的快速示例。假设您已经有一个名为“ thumb”的缩略图: 让我知道是否需要进一步说明。我现在正在我的项目中

  • 问题内容: 如何在Java中转换为? 请注意,现有答案显然是不正确的,因为它使用方法和,如果尚未加载图像(根据定义,它是一个异步对象),则可以返回。 请提供更正确的答案,或提供更多证明现有答案已经正确的证据。 问题答案: 如果这对您很重要,则可以使用“等待”来加载图像,然后就不必担心提供 看看JavaDocs了解更多详细信息 我不想添加任何GUI,我只需要下载图像或失败 好吧,如果您“需要下载”该

  • 问题内容: 好吧,我想将PIL图像对象来回转换为numpy数组,因此我可以实现比对象所允许的更快的逐像素转换。我想出了如何通过以下方式将像素信息放置在有用的3D numpy数组中: 但是,在完成所有出色的转换之后,我似乎无法弄清楚如何将其重新加载到PIL对象中。我知道该方法,但似乎无法使其正常工作。 问题答案: 你并不是在说行为不正确。我假设你在做 这是因为需要一个元组序列,并且你要给它一个num

  • 问题内容: 不知道我应该怎么做。任何帮助,将不胜感激 问题答案: 从输入流中读取并写入ByteArrayOutputStream,然后调用其以获得字节数组。 在字节数组周围创建一个ByteArrayInputStream以便从中读取。 这是一个快速测试:

  • 问题内容: 我有以下内容: 然后再: 我收到一个错误: 我尝试了各种方法将QuerySet转换为标准集或列表。没用。 我如何从QuerySet中删除一个项目,以便它不会从数据库中删除它,并且不返回新的QuerySet(因为它处于循环状态,因此无法使用)? 问题答案: 你可以这样做: 在评估QuerySet时阅读,请注意,将整个结果加载到内存中(例如通过list())是不好的。 参考: 关于评论的更

  • 问题内容: 我试图以90度的角度旋转base64编码的图像。完成此操作后,我想将其转换回base64字符串。但不幸的是无法实现这一目标。 到目前为止,这是我所做的: Kindy帮我如何将Rotated_image转换为base64字符串。 这是rotated_image的: [‘Image__transformer’,’__ doc __’,’__ getattr __’,’__ init __’