python - 字符串中的坐标字符串

时间:2017-06-04 22:49:46

标签: python

我有这个图片: font image

我想将像“Açúcar”这样的字符串转换为图像上的坐标

我试过了:

text = "Açúcar"

strcoord = []
for char in text:
    code = ord(char)
    y = code//16
    x = code%16
    strcoord += [[x,y]]

print(strcoord)

结果是:

  

[[1,4],[7,14],[10,15],[3,6],[1,6],[2,7]]

但是重音的坐标是错误的?

有一种快速的方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

图像映射中字符的顺序与unicode字符值的顺序不匹配:请参阅'Basic Latin' and 'Latin 1 Supplement'代码页。 ord()函数将使用该排序。

您的图片地图使用旧的IBM 437映射。您可以尝试以下更改将字符转换为正确的整数,以便在图像映射中使用。

text = "Açúcar"

strcoord = []
for char in text:
    code = int(char.encode('ibm437')[0])
    y = code//16
    x = code%16
    strcoord += [[x,y]]

print(strcoord)

encode函数返回一个字节数组,你想要的整数位于第0位。

这导致[[1, 4], [7, 8], [3, 10], [3, 6], [1, 6], [2, 7]],它应该是您正在寻找的坐标。