0

所以我想尝试使用 numpy 数组导入 2D 地图文件以在网格上显示图形图块。所以说我有一个需要 5x10 瓷砖的窗口。我能够让'1'代表字典中的某个PNG图块,但是我将如何在字典中导入带有其他数字甚至符号(如$或%或@等)的地图文件,而不仅仅是所有的1?

>>> numpy.ones((10,5))
array([[ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.,  1.]])
>>>
4

1 回答 1

0

如果您想要通过平铺一组较小的图像来创建一个大图像,那么您应该使用 Python 图像库 (PIL)。

此外,假设您想将文件名放入数组中,从而创建一个字符串数组而不是字符串数组,您可以像这样循环:

for row in xrange(a.shape[0]):
    for column in xrange(a.shape[1]):
        final_image.paste(tiledict[a[row, column]], row*tilesize, column*tilesize)

在上面的代码中,final_image将是一个大pil.Image对象,您可以在其中粘贴每个图块,并且tiledict是您从中获取这些图像的字典。

希望这可以帮助!

于 2012-11-29T20:01:01.893 回答