首页 > 解决方案 > 将图像转换为二进制数据

问题描述

我想将灰度图像转换为一串二进制数据。我成功地做到了,但结果定义为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))

标签: python-2.7image-processing

解决方案


我认为问题正在发生,因为您正在命名您的变量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

希望这可以帮助!祝你好运。


推荐阅读