将图像从StringIO存储到文件会产生扭曲的imag

2024-03-28 18:21:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我从PIL向StringIO存储了一个图像。当我从stringIO将它存储到一个文件时,它不会生成原始图像

代码:

    from PIL import Image
    from cStringIO import StringIO
    buff=StringIO()
    img = Image.open("test.jpg")
    img.save(buff,format='JPEG')
    #img=img.crop((1,1,100,100))
    buff.seek(0)
    #Produces a distorted image
    with open("vv.jpg", "w") as handle:
         handle.write(buff.read())

原始图像如下

Original Image

输出图像如下

Original Image

上面的代码怎么了


Tags: 文件代码from图像imageimportimgpil
1条回答
网友
1楼 · 发布于 2024-03-28 18:21:18

你需要使用BytesIO而不是StringIO。 此外,目标文件必须使用“wb”以二进制模式打开

下面是有效的代码(cStringIO被io替换)

from PIL import Image
from io import BytesIO
buff=BytesIO()
img = Image.open('test.jpg')
img.save(buff,format='JPEG')
#img=img.crop((1,1,100,100))
buff.seek(0)
#Produces a distorted image
with open('vv.jpg', "wb") as handle:
     handle.write(buff.read())

相关问题 更多 >