JavaFX - 将图像组转换为图像

时间:2016-01-26 19:44:02

标签: java javafx

我必须将文本转换为图像,我设法使用.awt它有点怪异但它现在可能会做,如果你有一个解决方案将文本转换为图像(在javafx中) alpha背景并自动调整图像大小到文本长度也非常感激。

我的实际问题:我有两个图像,一个是将文本转换为图像,另一个是字符,我需要的是将两个图像转换/合并为一个,文本位于字符的中间&# 39; s图像(到前面)。

到目前为止我做了什么:

 private Image textToImage(String text) {
    Label label = new Label(text);

    // label.setPrefSize(100, 100);
    label.setStyle("-fx-fill: brown; -fx-font-size: 1.5em");
    label.setWrapText(true);
    Scene scene = new Scene(new Group(label));
    WritableImage img = new WritableImage(70, 70);
    scene.snapshot(img);
    return img;
}

public Group test() {

    // The character
    ImageView img2 = new ImageView(secondImg());
    img2.setBlendMode(BlendMode.MULTIPLY);

    // The text
    ImageView img1 = new ImageView(textToImage("word"));
    img1.setLayoutX(img2.getImage().getWidth() / 2);
    img1.setLayoutY(img2.getImage().getHeight() / 2);

    Group g = new Group(img1, img2);
    g.setLayoutX(100);
    g.setLayoutY(100);

    return g;
}

我明白了:test

现在我想以某种方式将图像组转换回单个图像。为什么?因为我在构造函数中使用的字符对象:

this.setImage(--the two merged images--)

提前致谢!

1 个答案:

答案 0 :(得分:0)

我想到的最简单的解决方案是将所有内容渲染到Canvas或Scene中,然后拍摄它们的快照。