Ich möchte ein Bild von meinem ImageView in Dateien mit unterschiedlichen Auflösungen speichern. Tun Sie es als .png Ergebnisse wie erwartet. Wie für .jpg - Ich bekomme alle Dateien rosa getönt.Bild in JavaFX als JPG gespeichert ist rosa getönt
Wo ist der Trick? Hier ist der Code:
Object[] imagesFromFotoListView = ta.myFotoListView.getItems().toArray();
new File(localDir).mkdirs();
for (int i = 0; i < imagesFromFotoListView.length; i++) {
new File(localDir + "/" + i).mkdirs();
final ImageView iv = new ImageView((Image) imagesFromFotoListView[i]);
ImageIO.write(SwingFXUtils.fromFXImage(iv.snapshot(null, null), null), "jpg", new File(localModelFotoDir + "/" + i + "/large.jpg")); // JPG THAT FAILS PINK.
BufferedImage bi = SwingFXUtils.fromFXImage(iv.snapshot(null, null), null);
int resolution[] = new int[]{500, 250, 75};
for (int j = 0; j < resolution.length; j++) {
BufferedImage resizedBImage;
if (bi.getWidth() == bi.getHeight()) {
resizedBImage = resizeBufferedImage(bi, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, resolution[j], resolution[j]);
} else if (bi.getWidth() > bi.getHeight()) {
resizedBImage = resizeBufferedImage(bi, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, resolution[j], (int) ((double) resolution[j] * bi.getHeight()/bi.getWidth()));
} else {
resizedBImage = resizeBufferedImage(bi, Scalr.Method.ULTRA_QUALITY, Scalr.Mode.AUTOMATIC, (int) ((double) resolution[j] * bi.getWidth()/bi.getHeight()), resolution[j]);
}
Image resizedI = (Image) SwingFXUtils.toFXImage(resizedBImage, null);
ImageIO.write(SwingFXUtils.fromFXImage((Image) SwingFXUtils.toFXImage(resizedBImage, null), null), "png", new File(localModelFotoDir + "/" + i + "/" + resolution[j] + ".png")); // PNG THAT GOES WELL
}
}
Der erste Link ist nicht öffentlich, es erfordert Authentifizierung. – leonbloy
Ja leonbloy, aber [jeder kann sich anmelden, indem er auf der Authentifizierungsseite auf den Link Anmelden klickt] (https://javafx-jira.kenai.com/browse/RT-14647) und dann alle Probleme im JavaFX-Issue-Tracker anzeigen . – jewelsea
Ich habe Ihre [pngj] (https://code.google.com/p/pngj/) Bibliothek leonbloy bemerkt, vielleicht können Sie [Oracle bei der Reparatur helfen] (https://wiki.openjdk.java.net/display/OpenJFX/Main), sicherlich [möchte Hilfe] (https://wiki.openjdk.java.net/display/OpenJFX/Owners+Wanted) mit Bildverarbeitung. Wenden Sie sich bei Interesse an die [openjfx-dev-Mailingliste] (http://mail.openjdk.java.net/mailman/listinfo/openjfx-dev). – jewelsea