python:从PNG转换为JPG而不使用PIL将文件保存到磁盘

Viv*_*vek 13 python python-imaging-library

在我的程序中,我需要将.png文件转换为文件,.jpg但我不想将文件保存到磁盘.目前我用

>>> from PIL import Imag
>>> ima=Image.open("img.png")
>>> ima.save("ima.jpg")
Run Code Online (Sandbox Code Playgroud)

但这会将文件保存到磁盘.我不想将其保存到磁盘,但将其转换.jpg为对象.我该怎么做?

izo*_*ica 12

你可以使用io的BytesIO来做你正在尝试的事情:

from io import BytesIO

def convertToJpeg(im):
    with BytesIO() as f:
        im.save(f, format='JPEG')
        return f.getvalue()
Run Code Online (Sandbox Code Playgroud)


tux*_*ion 5

改进 Ivaylo 的回答:

from PIL import Image
from io import BytesIO

ima=Image.open("img.png")

with BytesIO() as f:
   ima.save(f, format='JPEG')
   f.seek(0)
   ima_jpg = Image.open(f)
Run Code Online (Sandbox Code Playgroud)

这样,ima_jpg 就是一个 Image 对象。