我有这个图片: 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]]
但是重音的坐标是错误的?
有一种快速的方法可以做到这一点吗?
答案 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]]
,它应该是您正在寻找的坐标。