2012-10-05 159 views
3

我想獲取Java中的字符串中的像素的XY座標,但我無法弄清楚如何。如何在Java中實現這一點?

我會盡量解釋得更清楚。

比方說,我想要做這樣的事情:

paint.setTextSize(40); 
canvas.drawText("hello", 100, 100, paint); 

但不是實際繪製的文本,我想對應,這將是該文本的所有像素座標列表,可以是相對於文本或畫布的開頭而言,並不重要。

這是可能的嗎? Google找不到它。

謝謝。

+3

你有什麼tr滅蠅燈?你嘗試過那種天真的解決方案嗎?因爲您可以製作畫布的副本,將文字放在那裏,然後比較像素 - 不同的是來自文字。這顯然非常緩慢。爲什麼你甚至需要這個? –

回答

4

我懷疑是否甚至可以沒有很大的努力。

一個這取決於你正在使用什麼字體。

我可以想象它的唯一方法是通過在BufferedImage上內部繪製文本,然後檢查每個像素的顏色。

說,用黑色文本顏色在白色背景上繪製它。

僞代碼:

for each pixel row{ 
    for each pixel column{ 
     if(pixel.getColor() == (new Color()).black) 
      save coordinates 
    } 
} 
+0

我得到它工作得很好,忘了提及它的Android,所以我不得不使用位圖而不是BufferedImage。謝謝。 – Suffick