加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python Pillow:在发送到第三方服务器之前使图像渐进

发布时间:2020-12-20 13:51:42 所属栏目:Python 来源:网络整理
导读:我有一个使用Django Forms上传的图像,它在变量中可用作InMemoryFile我想要做的是使其渐进. 用于使图像渐进的代码 img = Image.open(source)img.save(destination,"JPEG",quality=80,optimize=True,progressive=True) Forms.py my_file = pic.pic_url.filepho
我有一个使用Django Forms上传的图像,它在变量中可用作InMemoryFile我想要做的是使其渐进.

用于使图像渐进的代码

img = Image.open(source)
img.save(destination,"JPEG",quality=80,optimize=True,progressive=True)

Forms.py

my_file = pic.pic_url.file
photo = uploader.upload_picture_to_album(title=title,file_obj=my_file)

问题是,我必须保存文件,以防我想使其逐步进行,并再次打开它以将其发送到服务器. (这似乎是一个多余的行动,使其进步)

我只是想知道是否还有一个图像渐进式,它不能将图像物理保存在磁盘上而是保存在内存中,我可以使用现有代码上传它吗?

理念

寻找类似的东西.

my_file=pic.pic_url.file
    progressive_file = (my_file)
    photo = picasa_api.upload_picture_to_album(title=title,file_obj=progressive_file)

解决方法

如果您只想将中间文件保存到磁盘,则可以将其保存到StringIO中. PIL.open()和PIL.save()都接受类文件对象和文件名.

img = Image.open(source)
progressive_img = StringIO()
img.save(progressive_img,progressive=True)
photo = uploader.upload_picture_to_album(title=title,file_obj=progressive_img)

上传者需要支持使用StringIO,但希望如此.

可能使用合适的协程直接从save()直接传输结果,但这是一个更多的工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读