2010-05-14 29 views
0

我有一張26個方格,26個方格的表格。每個廣場將是30px * 30px。使用Ruby將'tileset圖像'合併到一個背景中

鑑於瓷磚

  • upper_left.png
  • upper_right.png
  • upper_wall.png

和:

  • left_wall.png
  • right_wall.png

和:

  • bottom_left.png
  • bottom_wall.png
  • bottom_right.png

我的目標是包括背景即780px * 780px 。爲了提高速度並防止可能出現的渲染錯誤,我希望這些tilesets能夠合成一個大背景。製作8塊瓷磚很簡單,但我不是設計師......
我相信我需要使用像RMagick這樣的圖像庫將它們放在一起,但我不知道從哪裏開始。

理想情況下,我想只是迭代圖像,就好像它是一個26行和列的多維數組。這樣我就可以用我需要的圖像加載每個點,並將其寫入文件。

任何人都可以指出我正確的方向,我可以如何使用程序操縱圖像?

最終目標是將8張圖片的tile_set.zip上傳到服務器,並讓它自己完成。

但是現在,只需一個簡單的Ruby shell腳本就足夠了。

感謝提前:)

回答

1

我不會寫劇本給你,但ImageMagick的+append and -append是將解決這個問題的工具。相應的RMagick文檔是here

+0

它的工作完美,雖然由於某種奇怪的原因,完全在內存中不起作用。 我必須將用append(false)製作的行保存到磁盤,然後對這些做附加(true)。 我只能假設它是一個錯誤;但是它發生在本地Windows機器和我的共享服務器上,都使用Ruby 1.8.6。 – Robbie 2010-05-14 06:36:14

+0

很酷。 RMagick可以成爲記憶豬,至少在我的經驗。 780x780的最終尺寸肯定不是很大,或者什麼都不是。我想知道它是怎麼回事。 – x1a4 2010-05-14 06:58:41

+0

@ x1a4我認爲它與將[內存]中的圖像添加到自身有關。我還沒有嘗試設置調試器或任何其他設備,但我認爲它正在進入一個無限循環。 http://pastie.org/960707 如果我擺脫第二個<< row1,代碼工作得很好。 – Robbie 2010-05-14 18:46:58