如何从python-PIL-image对象获取字符串数据?

2024-09-30 16:24:15 发布

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

我试图通过套接字将桌面的gif文件的数据发送到远程桌面(用于桌面共享),但使用PIL无法获取数据的字符串,我不知道如何将PIL对象转换为string,这是我的代码(顺便说一句,我知道我可以只写一个文件,然后像那样读取数据,但我认为这是低效的,我认为还有更好的方法吗?)。在

    from PIL import ImageGrab
    import cStringIO
    fakie = cStringIO.StringIO()
    ImageGrab.grab().save(fakie, 'GIF')
    data = fakie.getvalue()
    fakie.close()
    # This last bit of code is to see if the var data stored the right info in a str bc i need to send it through a socket
    with open('C:\something\something\Desktop\image.gif', 'w') as f:
        f.write(data)

问题是,文件写完后,gif图片只显示页面的前1/10(gif文件一团糟),所以我想知道问题是出在我的电脑还是我的代码(我在一台非常旧的电脑上使用vista,我想至少6年了,我很快就会有新的)。感谢您的任何意见。在


Tags: 文件theto数据代码importdatapil
1条回答
网友
1楼 · 发布于 2024-09-30 16:24:15

正如@HYRY所说,您必须以“wb”模式而不是“w”打开图像文件,而不是“w”—Python默认以文本模式打开它—在windows中,这意味着每当向文件中写入0x0a字节时,O.S.会写一个0x0d 0x0a序列,因为它将行结束序列转换为windows原生行结尾。在

在“wb”模式下,没有翻译,您的图像文件也不会损坏。在

相关问题 更多 >