从http请求直接写入jpg

Write from http request to jpg directly

我有一个脚本可以从多个网站下载图片。我不知道文件的格式,它可能会有所不同。

我的工作:

if response.status_code is requests.codes.ok:
    with iopen(path, 'wb') as file:
        file.write(response.content)

在指定路径创建图像。然而,有时我下载的文件是 PNG 格式,并且有一个重要的大小。由于大小问题,我想将其直接转换为 jpg 格式,并进行某种压缩,以减少磁盘上文件的 space。

我该怎么做?解决方案必须兼容 python 3.

好的,我自己的回答:

import io
from PIL import Image

if response.status_code is requests.codes.ok:
    io = io.BytesIO(response.content)
    im = Image.open(io).convert('RGB').save('test.jpg)