JavaFX从现有图像创建新图像

时间:2017-04-17 14:26:07

标签: java image javafx scale

在JavaFX中,您可以从字符串(路径)创建新图像,如何从现有的javafx.scene.image.image创建新图像?

如下:

Image image2 = new Image("my/res/flower.png", 100, 150, false, false);

但不是路径而是实际的图像对象。

我想更改图片的大小。

2 个答案:

答案 0 :(得分:2)

通常不需要创建新的Image实例来执行重新缩放。 API允许您查看或绘制现有Image实例的缩放版本。例如,给定

Image image = new Image("my/res/flower.png");

您可以使用

创建显示缩放版本的ImageView
ImageView imageView = new ImageView(image);
imageView.setFitWidth(100);
imageView.setFitHeight(150);

或者您可以使用

将缩放版本绘制到画布上
Canvas canvas = ... ;
GraphicsContext gc = canvas.getGraphicsContext2D();
gc.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), 0, 0, 100, 150);

答案 1 :(得分:0)

迟到的响应,但由于我遇到了同样的问题(我需要将一个Image传递给setDragView()),这是我实现的解决方案:

Image makeThumbnail(Image original) {
    ImageView i = new ImageView(original);
    i.setFitHeight(64); i.setFitWidth(64);

    return i.snapshot(new SnapshotParameters(), new WritableImage(64, 64));
}