4

シンプルなラスター グラフィック エディターを JavaFX アプリに組み込みたいと考えています。グラフィックスオブジェクトが読み取り専用のため、
使用できないようです。 誰かがこれを行う方法を教えてもらえますか、またはピクセルマップへの直接アクセスを提供するクラスがいくつかありますか? javafx.scene.image.Image

upd:エディターが迅速に応答する必要はないため、非表示を作成java.awt.Canvasし、ImageView ですべてのイベントを処理してキャンバスに描画し、何らかの方法でキャンバスから出力ストリームを作成して新しい javafx イメージを作成し、配置することを提案します。それを ImageView にします

4

1 に答える 1

13

Canvasチュートリアルの「ユーザーとの対話」セクションに示されているように、 JavaFXキャンバスを使用してこれを行うことができます。は必要ありません。java.awt.Canvas

キャンバス (またはその他のノード)のスナップショットを取得して、イメージを作成できます。

ImageOps チュートリアルに示されているように、 PixelReaderを使用して既存の画像からピクセル マップを読み取り、 WritableImageから取得したPixelWriterを使用して画像のピクセル マップに書き込むことができます。

結果のイメージをディスクに書き込むには、それを BufferedImage に変換し、ImageIOを使用して書き出します。

必要な場合は、画像をピクセル化された形式にスケーリングするサンプルがあります (Microsoft Paint のズーム機能に似ています): JavaFX ImageView without any Smoothing .

于 2013-04-25T09:25:57.777 に答える