好吧。长话短说。在
我的相机有一个拍照方法,它返回的结果是:
[160, 120, 3, 10, 1287848024, 96181, 'super long image string']
我可以在调用如下方法后立即解码字符串并将其保存为图像:
^{pr2}$这工作很好,我可以打开保存的图像。在
但是,如果我只是将字符串保存到txt文件中,然后我希望加载它并保存为图像,如下所示:
f = open("rawImage.txt", "r")
data = f.readline()
f.close()
# save as image
im = Image.frombuffer("YCbCr",(160,120),data)
im.save("test.jpg", "JPEG")
我得到的几乎是完全绿色的图像。在
下面是一个我一直有问题的字符串示例:
http://richardknop.com/rawImage.txt
以下是该图像的摄影机的getImageRemote()方法的完整输出:
http://richardknop.com/log.txt
有人知道怎么了?这和编码有关吗?所有文件都保存为ASCII格式,但我也尝试过将它们全部保存为UTF-8格式。在
编辑:
我是如何将图像写入文件的?我刚刚重定向了脚本的输出:
python script.py > output.txt
在剧本里我有:
print imageByteArray
也许你应该用这样的二进制模式来读写你的文件:
读入数据:
让我们看看
^{pr2}$raw_data
(来自原始图像.txt)与的字符串相同log_data
(来自日志.txt). 哦,它们的长度不一样:看看这两条线的开头。似乎
raw_data
已经为'\x81'写入了4个字符,而这个字符是\x81
的。在这可能是因为原始图像.txt以写入模式
'w'
而不是'wb'
打开。最好的解决办法就是写作原始图像.txt使用正确的写入模式,如Steven Rumbalski does here。在但鉴于这种困境,有一种方法可以解决它:
现在这是可行的:
相关问题 更多 >
编程相关推荐