我怎样才能在Java中实现这一目标?

时间:2012-10-05 07:20:06

标签: java text paint java-canvas

我试图在Java中获取字符串中像素的XY坐标,但我无法弄清楚如何。

我会试着更清楚地解释一下。

假设我想做这样的事情:

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

但是我没有实际绘制那个文本,而是想要一个与该文本中所有像素相对应的坐标列表,这些像素可以相对于文本或画布的开头,无关紧要。

这一切都可能吗?无法通过Google找到任何相关信息。

感谢。

2 个答案:

答案 0 :(得分:4)

我怀疑是否有可能毫不费力。

一方面,这取决于您使用的字体。

我能想象的唯一方法是在BufferedImage上内部绘制文本,然后检查每个像素的颜色。

说,在黑色文字颜色的白色背景上绘制它。

伪代码:

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

答案 1 :(得分:1)

我认为这应该回答你的问题: Calculate text size according to width of text area

您可以确定文字大小,但单个像素依赖于字体和重量等参数。

如果您需要单个字符的边界,您可以使用子字符串

相关问题