如何在Java中实现这一点?

如何在Java中实现这一点?,java,text,paint,java-canvas,Java,Text,Paint,Java Canvas,我试图在Java中获得字符串中像素的XY坐标,但我不知道如何获得 我会尽量解释得更清楚些 假设我想做这样的事情: paint.setTextSize(40); canvas.drawText("hello", 100, 100, paint); 但我不想实际绘制文本,而是想要一个坐标列表,对应于文本中的所有像素,可以是相对于文本或画布的开头,这无关紧要 这有可能吗?在谷歌上找不到任何关于它的信息 谢谢。我怀疑不费吹灰之力是否有可能 首先,这取决于您使用的字体 我能想象的唯一方法是,在Buffe

我试图在Java中获得字符串中像素的XY坐标,但我不知道如何获得

我会尽量解释得更清楚些

假设我想做这样的事情:

paint.setTextSize(40);
canvas.drawText("hello", 100, 100, paint);
但我不想实际绘制文本,而是想要一个坐标列表,对应于文本中的所有像素,可以是相对于文本或画布的开头,这无关紧要

这有可能吗?在谷歌上找不到任何关于它的信息


谢谢。

我怀疑不费吹灰之力是否有可能

首先,这取决于您使用的字体

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

比如说,用黑色文本颜色在白色背景上绘制它

伪代码:

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

我想这会回答你的问题:

您可以确定文本大小,但独立像素取决于字体和重量等参数


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

您尝试了什么?你试过天真的解决办法吗?因为你可以复制画布,把你的文本放在那里,比较像素-不同的像素与你的文本。显然,这将非常缓慢。你为什么需要这个呢?我让它工作得很好,忘了提到它是Android的,所以我不得不使用位图而不是BuffereImage。谢谢