我想獲取Java中的字符串中的像素的XY座標,但我無法弄清楚如何。如何在Java中實現這一點?
我會盡量解釋得更清楚。
比方說,我想要做這樣的事情:
paint.setTextSize(40);
canvas.drawText("hello", 100, 100, paint);
但不是實際繪製的文本,我想對應,這將是該文本的所有像素座標列表,可以是相對於文本或畫布的開頭而言,並不重要。
這是可能的嗎? Google找不到它。
謝謝。
我想獲取Java中的字符串中的像素的XY座標,但我無法弄清楚如何。如何在Java中實現這一點?
我會盡量解釋得更清楚。
比方說,我想要做這樣的事情:
paint.setTextSize(40);
canvas.drawText("hello", 100, 100, paint);
但不是實際繪製的文本,我想對應,這將是該文本的所有像素座標列表,可以是相對於文本或畫布的開頭而言,並不重要。
這是可能的嗎? Google找不到它。
謝謝。
我懷疑是否甚至可以沒有很大的努力。
一個這取決於你正在使用什麼字體。
我可以想象它的唯一方法是通過在BufferedImage上內部繪製文本,然後檢查每個像素的顏色。
說,用黑色文本顏色在白色背景上繪製它。
僞代碼:
for each pixel row{
for each pixel column{
if(pixel.getColor() == (new Color()).black)
save coordinates
}
}
我得到它工作得很好,忘了提及它的Android,所以我不得不使用位圖而不是BufferedImage。謝謝。 – Suffick
我覺得這sdhould回答你的問題: Calculate text size according to width of text area
您可以確定文本大小,但indivudual像素像塊等
dependding字樣和參數如果你需要單個字符的邊界,你可以使用子字符串
你有什麼tr滅蠅燈?你嘗試過那種天真的解決方案嗎?因爲您可以製作畫布的副本,將文字放在那裏,然後比較像素 - 不同的是來自文字。這顯然非常緩慢。爲什麼你甚至需要這個? –