JavaFX を使用してジグソー パズルを作成しようとしているのは、一部は誰かに尋ねられたから、一部は JavaFX を試してみたいからです。ただし、画像の実際のトリミングには問題があります。
アイデアは、ユーザーが画像と、画像をより小さな部分にカットするプログラムを提供することです。シンプルですね。私の問題は次のとおりです。画像を切り取るために見つけた唯一の方法は、画像オブジェクトのコピーを作成し、コピーの表示部分を変更することです。以下に例を示します。
ImageView imgageView = new ImageView(); // Creates a new ImageView; this will be a single puzzle piece.
imgageView.setImage(originalImage); // Use the original image as the "base."
Rectangle2D rectangle = new Rectangle2D(0, 0, 50, 50); // Crop the image from (0,0) to (50, 50).
最後の行を明確にするために、API の関連部分を次に示します。
public Rectangle2D(double minX,
double minY,
double width,
double height)
Creates a new instance of Rectangle2D.
Parameters:
minX - The x coordinate of the upper-left corner of the Rectangle2D
minY - The y coordinate of the upper-left corner of the Rectangle2D
width - The width of the Rectangle2D
height - The height of the Rectangle2D
絵を 4 ピースまたは 9 ピースにカットする場合 (このゲームは幼児向けです) は問題ありませんが、1200 ピースの素敵なパズルにするにはどうすればよいでしょうか? これにより、非常にコストのかかる操作が発生することはありませんか? トリミング自体だけでなく、画像のコピーをメモリに保持するためにも。私がこれを正しく理解していれば、各ピースは元の画像全体で構成され、その大部分は「隠されている」ままになります。
私は単に機能を誤解していますか?そうでない場合は、これを行うためのより良い方法があるはずですよね?