Python 3将pixel(PIL)对象转换为字符串并反转

时间:2016-06-01 12:40:36

标签: python postgresql object python-imaging-library

我使用PIL读取图像的像素图,然后将地图作为字符串存储在Postgre数据库VARCHAR列上。我想从我的Python脚本再次读取该数据库VARCHAR字符串并将其转换为我使用pix=im.load()时获得的相同像素映射对象,以便我可以像这样解析:

读取数据库字符串后我想要的结果,例如

     mypixmap[0][0] = 255  mypixmap[1][0] = 255
     mypixmap[0][1] = 154  mypixmap[1][1] = 0
     mypixmap[0][2] = 120  mypixmap[1][1] = 30
     mypixmap[0][3] = 100  mypixmap[1][1] = 255

依旧......

如果使用print(mypixmap)完全打印元组列表会导致这样的事情:

[(65, 65, 65, 255)(49, 49, 49, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(254, 254, 254, 255)(254, 254, 254, 255)(254, 254, 254, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(255, 255, 255, 255)(168, 168, 168, 255)(133, 133, 133, 255)(255, 255, 255, 255)]

但在这种情况下print(mypixmap[0][0])会给65 没有任何括号,因为它将检索第一个整数。

我知道Postgre驱动程序和SQL所以我只需要一种方法将对象存储到数据库中(也许VARCHAR不好?)并将其恢复原状。

我希望很清楚,如果我没有使用正确的条款,我很抱歉,但我仍然在学习Python的第一步。

1 个答案:

答案 0 :(得分:1)

我通过将映射转换为字符串和.remove()所有不是字节八位字节的字符来计算我的代码。当我将此字符串存储到VARCHAR列时,我可以将其取回,再次删除除八位字节之外的所有内容,然后使用带有索引[]的字符串来解析八位字节。