List of usage examples for javafx.scene.image WritableImage WritableImage
public WritableImage(@NamedArg("width") int width, @NamedArg("height") int height)
From source file:ijfx.core.image.DefaultDatasetUtilsService.java
public <T extends RealType<T>> Image datasetToImage(RandomAccessibleInterval<T> dataset, ColorTable colorTable, double min, double max) { int width = (int) dataset.dimension(0); int height = (int) dataset.dimension(1); WritableImage image = new WritableImage(width, height); datasetToImage(dataset, colorTable, min, max, image); return image; }
From source file:be.makercafe.apps.makerbench.editors.GCodeEditor.java
private void handleExportAsPngFile(ActionEvent e) { if (csgObject == null) { Alert alert = new Alert(AlertType.ERROR); alert.setTitle("Oeps an error occured"); alert.setHeaderText("Cannot export PNG. There is no geometry !"); alert.setContentText("Please verify that your code generates a valid CSG object."); alert.showAndWait();/*from w w w . j a v a 2 s . c o m*/ return; } FileChooser fileChooser = new FileChooser(); fileChooser.setTitle("Export PNG File"); fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("Image files (*.png)", "*.png")); File f = fileChooser.showSaveDialog(null); if (f == null) { return; } String fName = f.getAbsolutePath(); if (!fName.toLowerCase().endsWith(".png")) { fName += ".png"; } int snWidth = 1024; int snHeight = 1024; double realWidth = viewGroup.getBoundsInLocal().getWidth(); double realHeight = viewGroup.getBoundsInLocal().getHeight(); double scaleX = snWidth / realWidth; double scaleY = snHeight / realHeight; double scale = Math.min(scaleX, scaleY); PerspectiveCamera snCam = new PerspectiveCamera(false); snCam.setTranslateZ(-200); SnapshotParameters snapshotParameters = new SnapshotParameters(); snapshotParameters.setTransform(new Scale(scale, scale)); snapshotParameters.setCamera(snCam); snapshotParameters.setDepthBuffer(true); snapshotParameters.setFill(Color.TRANSPARENT); WritableImage snapshot = new WritableImage(snWidth, (int) (realHeight * scale)); viewGroup.snapshot(snapshotParameters, snapshot); try { ImageIO.write(SwingFXUtils.fromFXImage(snapshot, null), "png", new File(fName)); } catch (IOException ex) { Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex); Alert alert = new Alert(AlertType.ERROR); alert.setTitle("Oeps an error occured"); alert.setHeaderText("Cannot export PNG. There went something wrong writing the file."); alert.setContentText( "Please verify that your file is not read only, is not locked by other user or program, you have enough diskspace."); alert.showAndWait(); } }
From source file:editeurpanovisu.EditeurPanovisu.java
/** * * @param imgRect//from w w w.ja va 2 s .c om * @param iRapport * @return image transforme Mercator */ private static Image imgTransformationImage(Image imgRect, int iRapport) { int iLargeur = (int) imgRect.getWidth() / iRapport; int iHauteur = iLargeur / 2 / iRapport; WritableImage imgMercator = new WritableImage(iLargeur, iHauteur); PixelReader prRect = imgRect.getPixelReader(); PixelWriter pwMercator = imgMercator.getPixelWriter(); for (int i = 0; i < iLargeur; i++) { for (int j = 0; j < iHauteur; j++) { double phi = Math.asin(2.d * (iHauteur / 2.d - j) / iHauteur); int y2 = (int) (iHauteur * iRapport * (0.5d - phi / Math.PI)); if (y2 >= iHauteur * iRapport) { y2 = iHauteur * iRapport - 1; } Color clPixel = prRect.getColor(i * iRapport, y2 * iRapport); pwMercator.setColor(i, j, clPixel); } } return imgMercator; }