我目前在Python程序中从二进制数据字符串创建图像时遇到问题.我通过套接字接收二进制数据,但是当我尝试我在这里阅读的方法时,如下所示:
buff = StringIO.StringIO() #buffer where image is stored
#Then I concatenate data by doing a
buff.write(data) #the data from the socket
im = Image.open(buff)
Run Code Online (Sandbox Code Playgroud)
我对"图像类型未识别"的效果有异常.我知道我正在接收数据,因为如果我将图像写入文件然后打开文件它会工作:
buff = StringIO.StringIO() #buffer where image is stored
buff.write(data) #data is from the socket
output = open("tmp.jpg", 'wb')
output.write(buff)
output.close()
im = Image.open("tmp.jpg")
im.show()
Run Code Online (Sandbox Code Playgroud)
我想我在使用StringIO类时可能做错了但是我不确定
有没有一种方法可以将作为二进制字符串加载的图像转换为大小为 (im_height, im_width, 3) 的 numpy 数组?像这样的东西:
# read image as binary string
with open(img_path, "rb") as image_file:
image_string = image_file.read()
# convert image string to numpy
image_np = convert_binary_string_to_numpy(image_string)
Run Code Online (Sandbox Code Playgroud)
那个转换函数会是什么样子?我正在处理解密,因此我需要处理二进制字符串。谢谢!