Java - 将字符或字符串转换为形状/区域

时间:2012-05-17 09:36:45

标签: java string graphics shape graphics2d

我希望能够将任何字符或字符串转换为形状或区域,以便我能够以任何大小,样式,效果等方式绘制该字符。我喜欢。

更具体地说,我将使用视差来绘制它,以便它只能以一定的角度进行清晰定义(这就是为什么我不能使用html或任何那种性质的原因)。我已经设置了视差,我只需要这个形状。

简而言之,public Shape convert(char c){...}

或者,如果你能想到实现这个目标的另一种方法,请告诉我。


只是为了给你一个粗略的想法:

writing in clouds

1 个答案:

答案 0 :(得分:1)

根据previous answer,您似乎可以按如下方式管理它(假设此方法是在JPanel的子类上定义的):

public Shape convert(char c) {
    Font f = getFont();
    // Optionally change font characteristics here
    // f = f.deriveFont(Font.BOLD, 70);

    FontRenderContext frc = getFontMetrics(f).getFontRenderContext();
    GlyphVector v = f.createGlyphVector(frc, new char[] { c });
    return v.getOutline();
}

声明方法以获取String参数可能更容易,因为您可以将String作为第二个参数传递给createGlyphVector() - 如果需要,这可能比单独转换每个字符更有效不止一个。