如何执行压缩 JPEG 在 Python 没有录音/读

我想直接使用压缩图像 JPEG. 我知道帮助 PIL/Pillow 当我保存时,我可以挤压图像,然后读取后面的压缩图像 - 例如,


from PIL import Image
im1 = Image.open/IMAGE_FILE/
IMAGE_10 = os.path.join/'./images/dog10.jpeg'/
im1.save/IMAGE_10,"JPEG", quality=10/
im10 = Image.open/IMAGE_10/


但我希望在没有无关录制和阅读的情况下进行。 有没有包 Python 具有将图像和质量编号的函数作为输入并返回版本 jpeg 这个图像是否具有指定的质量?
已邀请:

卫东

赞同来自:

对于您可以使用的内存中的文件
StringIO

.
看:


from io import StringIO # "import StringIO" directly in python2
from PIL import Image
im1 = Image.open/IMAGE_FILE/

# here, we create an empty string buffer
buffer = StringIO.StringIO//
im1.save/buffer, "JPEG", quality=10/

# ... do something else ...

# write the buffer to a file to make sure it worked
with open/"./photo-quality10.jpg", "w"/ as handle:
handle.write/buffer.contents///


如果检查文件
photo-quality10.jpg

, 然后它应该是相同的图像,但质量 10%, 什么和压缩参数 JPEG.

喜特乐

赞同来自:

使用 BytesIO


try:
from cStringIO import StringIO as BytesIO
except ImportError:
from io import BytesIO

def generate/self, image, format='jpeg'/:
im = self.generate_image/image/
out = BytesIO//
im.save/out, format=format,quality=75/
out.seek/0/
return out


StringIO 没有B. Python3.0, 链接到:
https://coderoad.ru/11914472/

要回复问题请先登录注册