我试图在Java中获取字符串中像素的XY坐标,但我无法弄清楚如何。
我会试着更清楚地解释一下。
假设我想做这样的事情:
paint.setTextSize(40);
canvas.drawText("hello", 100, 100, paint);
但是我没有实际绘制那个文本,而是想要一个与该文本中所有像素相对应的坐标列表,这些像素可以相对于文本或画布的开头,无关紧要。
这一切都可能吗?无法通过Google找到任何相关信息。
感谢。
答案 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
您可以确定文字大小,但单个像素依赖于字体和重量等参数。
如果您需要单个字符的边界,您可以使用子字符串