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

如何使用python / PIL将图像存储到redis

汪欣德
2023-03-14
问题内容

我正在使用python和图像模块(PIL)处理图像。

我想将图像对象的原始位流存储到redis,以便其他人可以使用nginx和httpredis直接从redis读取图像。

因此,我的问题是如何获取Image对象的原始位并将其存储到Redis中。


问题答案:

使用PIL 1.1.7,redis-2.7.2 pip模块和redis-2.4.10,我可以使它工作:

import Image
import redis
import StringIO

output = StringIO.StringIO()
im = Image.open("/home/cwgem/Pictures/portrait.png")
im.save(output, format=im.format)

r = redis.StrictRedis(host='localhost')
r.set('imagedata', output.getvalue())
output.close()

我发现这Image.tostring是不可靠的,因此此方法用于StringIO使字符串看起来像是文件。该format=im.format是必要的,因为StringIO没有一个“扩展”。然后,我通过执行以下操作测试了图像数据是否已保存:

redis-cli --raw get 'imagedata' >test.png

并确认我得到了图像。



 类似资料:
  • 问题内容: 我刚刚使用Python图像库(PIL)进行了一些图像处理,这是我之前发现的用于执行图像的傅立叶变换的文章,但是我无法使用save函数。整个代码运行良好,但不会保存生成的图像: 我得到的错误如下: 如何使用Pythons PIL保存图像? 问题答案: 已解决有关文件扩展名的错误,您可以使用(不带点)或将输出名称与扩展名一起传递。现在要处理该错误,您需要在频域中适当地修改数据以将其保存为整

  • 问题内容: 我需要拍摄图像并将其放置在新的生成的白色背景上,以便将其转换为可下载的桌面墙纸。因此该过程将进行: 生成具有1440x900尺寸的新全白图像 将现有图像放在顶部居中 另存为单个图像 在PIL中,我看到了该对象,但是没有任何迹象表明它可以将现有的图像数据绘制到另一个图像上。任何人都可以推荐的建议或链接? 问题答案: 这可以通过Image实例的方法来完成: 可以在Nadia Alramli

  • 问题内容: 我在图像上传服务器上使用redis和spring框架。我需要将图像存储到Redis。我发现以下问题,但这是针对python的。如何使用python /PIL将图像存储到redis 我不确定这是否是最好的方法,但我想知道如何在Java中进行操作(最好使用spring框架)。我正在使用使用jedis的spring-data-redis。 我想知道将图像存储在Redis中是否是一个很好的策略

  • 更新: 我得到以下错误: ...newimg1.save(“img1.png”)文件“C:\python27\lib\site-packages\pil\image.py”,第1439行,在save save_handler(self,fp,filename)文件“C:\python27\lib\site-packages\pil\pngimageplugin.py”中,第572行,在_save

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

  • 问题内容: 我需要将在黑色背景字母上绘制为白色的一系列图像转换为白色和黑色反转(为负)的图像。如何使用PIL实现此目的? 问题答案: 请尝试以下文档中的内容:http : //effbot.org/imagingbook/imageops.htm 注意:“ ImageOps模块包含许多“现成的”图像处理操作。该模块有些实验性,大多数操作员只能处理L和RGB图像。