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

python: Convert from PNG to JPG without saving file to disk using PIL

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

>>> from PIL import Imag
>>> ima=Image.open("img.png")
>>> ima.save("ima.jpg")

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

您可以使用 io:

中的 BytesIO 来做您正在尝试的事情
from io import BytesIO

def convertToJpeg(im):
    with BytesIO() as f:
        im.save(f, format='JPEG')
        return f.getvalue()

改进 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)

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

要在 with 语句之外的@tuxmanification 方法中使用 ima_jpg 对象,请使用 Image.load():

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)
   ima_jpg.load()