2017-04-17 14 views
0

JavaFXでは文字列(パス)から新しいイメージを作成できますが、既存のjavafx.scene.image.imageから新しいイメージを作成するにはどうすればよいですか?JavaFXは既存のものから新しいイメージを作成します

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

しかし、その代わりに、パスの実際の画像オブジェクトを次のよう

イメージのサイズを変更したいと思います。

+0

でキャンバスにスケーリングされたバージョンを描くことができますImageViewを作成することができます新しい「イメージ」?おそらく、あなたはこれを['ImageView'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/image/ImageView.html)で表示しようとしています: ImageViewは同じ画像からですか? –

+0

私はそのスケーリングされたイメージをキャンバスに描画したいと思います。 –

+0

['drawImage(...)'](http://docs.oracle.com/javase/8/javafx/api/javafx/scene/canvas/GraphicsContext.html#drawImage-javafx.scene)を使用してください。 image.Image-double-double-double-double-double-double-double-double)メソッドを使用して、スケーリングされたバージョンを描画することができます。ここでも、新しい画像を作成する必要はありません。 –

答えて

2

リスケーリングを実行するために、通常、新しいImageインスタンスを作成する必要はありません。 APIを使用すると、既存のImageインスタンスのスケーリングされたバージョンを表示または描画できます。例えば、

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

与え、あなたが必要です

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); 
関連する問題