目前我有一个文本对象,我需要确定它的边界。我曾经使用图形对象来获取我想要绘制的文本的字体度量,但由于我添加了旋转对象的功能(可能还有更多),我需要一种更好的方法来获取此对象的边界。我看了很多地方,到目前为止还没有什么对我有用。这是我目前的最新尝试:
//This is the bounding box edges 0: left, 1: right 2: top 3: bottom
int toReturn[] = new int[4];
//this.transform is the AffineTransform for the text Object(currently only
//rotated)
FontRenderContext frc = new FontRenderContext(this.transform,true,false);
TextLayout tl = new TextLayout(this.typedText,this.font,frc);
Rectangle2D bb = tl.getBounds();
toReturn[0] = (int)(bb.getX());
toReturn[1] = (int)(bb.getX()+bb.getWidth());
toReturn[2] = (int)(bb.getY());
toReturn[3] = (int)(bb.getY()+bb.getHeight());
这是获取转换文本的边界框的正确方法吗?
答案 0 :(得分:1)
不,提供给FontRenderContext
的AffineTransform
用于将印刷点缩放到此FontRenderContext中的像素。“您应该能够在边界上使用createTransformedShape()
来获得所需的结果。