python-2.7 - 将图像转换为二进制数据
问题描述
我想将灰度图像转换为一串二进制数据。我成功地做到了,但结果定义为none
而不是string
,这意味着我无法检查长度。有什么建议可以解决这个问题,或者这个想法的不同代码?谢谢。
这是我写的代码:
def pass_image(image_url):
str = base64.b64encode(requests.get(image_url).content)
print(str)
print "".join(format(ord(x), "b") for x in decodestring(str))
解决方案
我认为问题正在发生,因为您正在命名您的变量str
。这是 Python 类中用于字符串的名称,因此本质上您正在用变量覆盖字符串类定义,这意味着您不能再使用它及其函数(例如 len)
我能够通过以下更改运行此代码,试一试。我不完全理解你的目标,但希望这会有所帮助。此外,如果您想在不同的函数中使用它,请确保返回您创建的对象
import base64
import requests
my_url = '...' # your url here
def pass_image(image_url):
output = base64.b64encode(requests.get(image_url).content)
bin = "".join(format(ord(x), "b") for x in base64.decodestring(output))
return bin # or you could print it
len(pass_image(my_url)) # for the url I used, I got length of 387244
希望这可以帮助!祝你好运。