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