0

次のコードを使用してノードの画像を生成し、ImageViewを使用してシーンに追加します。

SnapshotParameters snapParams = new SnapshotParameters();
snapParams.setFill(Color.TRANSPARENT);
this.dragImage = new ImageView(draggable.snapshot(snapParams, null));

...

frontPane.getChildren().add(this.dragImage);
Bounds localBounds = frontPane.sceneToLocal(draggable
    .localToScene(draggable.getBoundsInLocal()));
this.dragImage.relocate(localBounds.getMinX(),
localBounds.getMinY());

残念ながら、私のスクリーンショットに見られるように、レンダリングされた画像は非常にぼやけています。問題となる可能性のあるアイデアや、ぼやけていない画像を取得する方法についてのアイデアは大歓迎です。

アップデート:

周りで遊んでいる間、私は削除しました

this.dragImage.relocate(localBounds.getMinX(),localBounds.getMinY());

その結果、ぼやけのない鮮明な画像が得られます。なぜそうなるのかわかりませんが、画像を正しい位置に変換する必要があります。

ぼやけたスナップショット

4

1 に答える 1

1

relocate呼び出しでintへの単純なキャストでぼやけを取り除きました:

this.dragImage.relocate((int) localBounds.getMinX(),(int) localBounds.getMinY());

私はそれlocalBounds.getMinX()が638.5でlocalBounds.getMinY()136.5であることを発見しました。さらなる実験により、変換の非積分値がぼやけた画像につながるという結論に達しました。

これについての説明は、ShapeのAPIドキュメントの「座標系との相互作用」にあります。

于 2012-11-01T13:32:37.390 に答える