2012-11-29 69 views
0

所以我想嘗試和使用一個numpy數組導入一個2D地圖文件,以在網格上顯示圖形瓷磚。所以說,我有一個需要5x10瓦的窗口。我可以讓'1'代表字典中的某個PNG圖塊,但是如何將我的字典中的其他數字甚至符號(如$或%或@ ect)導入地圖文件而不是所有的1?Python Numpy字典地圖導入?

>>> 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.]]) 
>>> 
+0

「地圖文件」的格式是什麼? – BrenBarn

+0

它只是一組鍵。就像上面的1:cool.png,2:other.png一樣。問題是我如何構建自己的數組,而不是僅僅擁有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是你從這裏獲取這些圖像的字典。

希望這會有所幫助!

+0

我會研究這個,謝謝! –