V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
miniyao
V2EX  ›  Python

用户前端传过来的图片需要压缩剪裁处理,不落盘,直接用 Pillow 的 Image 打开 BytesIO 可以处理吗?

  •  
  •   miniyao · 2020-09-24 11:04:52 +08:00 · 1839 次点击
    这是一个创建于 1282 天前的主题,其中的信息可能已经有所发展或是发生改变。
    当前的操作是先把用户前端传过来的图片落盘保存,然后用 Image.open() 打开处理。

    如果把用户前端传过来的图片,不落盘,直接用 Image 处理,可以吗?
    8 条回复    2020-09-24 15:30:08 +08:00
    1462326016
        1
    1462326016  
       2020-09-24 12:01:06 +08:00   ❤️ 1
    可以啊,open 函数参数 fp 也可以是一个文件对象,只要实现了 read,seek,tell 就可以
    ```
    from PIL import Image
    from io import BytesIO

    img_content = b'k11111'
    img = Image.open(BytesIO(img_content))
    img.xxx
    ```
    qsfun
        2
    qsfun  
       2020-09-24 13:02:01 +08:00 via iPhone
    不落盘可能得考虑内存问题。不过如果你直接把 http 的流直接 pipe 给 image,倒是没有内存问题,不了解是否支持这样操作
    nicoljiang
        3
    nicoljiang  
       2020-09-24 14:45:19 +08:00
    这种还是用专门的云存储比较好吧。
    bjt
        4
    bjt  
       2020-09-24 15:05:01 +08:00
    不落盘多半是为了节省硬盘 io 吧, 可以考虑用 tmpfs 内存盘
    zouri
        5
    zouri  
       2020-09-24 15:08:01 +08:00
    可以直接裁剪完再分别保存
    qiayue
        6
    qiayue  
       2020-09-24 15:10:34 +08:00
    前端直接传到七牛等云存储
    misaka19000
        7
    misaka19000  
       2020-09-24 15:12:07 +08:00
    当然可以
    linvaux
        8
    linvaux  
       2020-09-24 15:30:08 +08:00 via iPhone
    不怕内存爆了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5314 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:13 · PVG 15:13 · LAX 00:13 · JFK 03:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.