Example usage for javafx.scene.image WritableImage WritableImage

List of usage examples for javafx.scene.image WritableImage WritableImage

Introduction

In this page you can find the example usage for javafx.scene.image WritableImage WritableImage.

Prototype

public WritableImage(@NamedArg("width") int width, @NamedArg("height") int height) 

Source Link

Document

Construct an empty image of the specified dimensions.

Usage

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;
}