2017-08-03 68 views
2

大家好我想要填補了Java 2D陣列,0和1。 1代表白色,0代表黑色。我想,這對於在字母表中的每個字符一個二維數組到z 例如:一個在Java在字母表中的每個字符二維數組

String[][] myArray = {//letter A 
    {"0", "0", "1", "0", "0"}, 
    {"0", "1", "0", "1", "0"}, 
    {"1", "1", "1", "1", "1"}, 
    {"1", "0", "0", "0", "1"}, 
    {"1", "0", "0", "0", "1"},}; 

是有一個快速的方法來做到這一點。我的二維數組必須是22 16

+0

你能否詳細說明這個二維數組如何與一個? –

+0

這將最終給出*固定大小的光柵字體*。首先處理字體時可能會有警告,因此您應該研究它們的工作方式。例如,由於像'jg'這樣的字母,* baseline *不是底線。你應該懷疑是否水平和垂直間距或包含在16x22矩陣... –

+1

@VidorVistrom如果看一下1的時候,看起來就像一個字母。 –

回答

1

你可以開發一個小編輯器來「畫」的像素,並將其轉換爲ASCII碼或者只是使用任何可用的ASCII或像素字體,並將其轉換到你的格式。

我的意思是,如果你把基於字體圖像一個簡單的瓷磚這樣

tile based pixel font

和提取的像素信息,並將它們轉換成你的陣列格式,這將是更快。由於字符大小是固定的,你可以從這樣的圖像獲取特定的字符範圍很容易,你需要的是加載圖像並讀取二維像素信息,但應該是使用Java代碼的幾行faily容易。

+0

你能告訴我如何從這個圖像讀取像素? –

+0

好的我有圖像作爲一個和0你知道分裂嗎? –

+0

好吧,你只需要弄清楚你需要的字母在哪裏,然後再用一個循環來遍歷一個「瓦片」。所以如果我用MS Paint打開圖像並放大,您可以看到左下角的像素座標。要實際讀取像素座標處的顏色,您可以使用[本示例](https://stackoverflow.com/a/22391906/7462657)並將其修改爲僅在像素爲黑色或白色時才返回。它不應該那麼辛苦,如果你自己想出來而不是僅僅使用別人寫的代碼,那會更好。 :) – xander

相關問題