Ich versuche ein Jigsaw Puzzle mit JavaFX zu schreiben, teilweise weil mich jemand gefragt hat und teilweise weil ich JavaFX ausprobieren will. Allerdings habe ich Schwierigkeiten mit dem eigentlichen Beschneiden des Bildes.Effektive Bildbeschneidung in JavaFX
Die Idee ist, dass der Benutzer das Bild und das Programm liefert, um das Bild in kleinere Stücke zu schneiden. Einfach, oder? Mein Problem ist folgende: Die einzige Art, wie ich das Bild finden konnte, schneiden ist eine Kopie des Bildobjekts zu machen und den sichtbaren Teil der Kopie zu ändern, hier ein Beispiel:
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).
Gerade die letzte Zeile zu klären hier ist die related piece in the 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
Nun ist es in Ordnung, wenn ich das Bild in vier oder neun Stücke bin Schneiden (das Spiel für kleine Kinder gedacht ist), aber was ist, wenn ich das Bild in ein schönes schneiden möchten 1200 Stück Puzzle? Wird dies nicht zu einem extrem teuren Vorgang führen? Nicht nur das Zuschneiden selbst, sondern das Speichern vieler Kopien des Bildes im Speicher. Sehen Sie, wenn ich das richtig verstehe, besteht jedes Stück aus dem gesamten Originalbild mit einem großen Teil davon, das "versteckt" bleiben wird.
Bin ich die Funktion einfach missverstehen? Wenn nicht, muss es einen besseren Weg geben, richtig?
Danke für die Antwort, ich habe eigentlich alles über diese Frage vergessen. – NotMyName