AttributeError:' str'对象没有属性' tostring'

时间:2014-08-16 14:31:04

标签: python python-imaging-library python-requests pillow

尝试将图片转换为字符串....

import requests
image = requests.get(image_url).content
image.tostring()

我收到错误:

  

AttributeError:'str'对象没有属性'tostring'

我如何把它变成Python理解为图像的东西,然后我可以调用tostring()?

1 个答案:

答案 0 :(得分:2)

响应的.content属性已经是字符串。 Python字符串对象没有tostring()方法。

Pillow / PIL没有在这里发挥作用;加载图像URL时,requests库不会返回Python Image Library对象。如果您希望有一个Image对象,则需要从加载的数据中创建该对象:

from PIL import Image
from io import BytesIO
import requests

image_data = BytesIO(requests.get(image_url).content)
image_obj = Image.open(image_data)

image_obj然后是PIL Image实例,现在您可以使用Image.tostring()将其转换为原始图像数据:

>>> from PIL import Image
>>> from io import BytesIO
>>> import requests
>>> image_url = 'https://www.gravatar.com/avatar/24780fb6df85a943c7aea0402c843737?s=128'
>>> image_data = BytesIO(requests.get(image_url).content)
>>> image_obj = Image.open(image_data)
>>> raw_image_data = image_obj.tostring()
>>> len(raw_image_data)
49152
>>> image_obj.size
(128, 128)
>>> 128 * 128 * 3
49152