Skip to content
Snippets Groups Projects
ChaosCanvasToImageConverter.java 1.18 KiB
Newer Older
package edu.ntnu.stud.chaosgame.view;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.paint.Color;
import edu.ntnu.stud.chaosgame.controller.game.ChaosCanvas;

/**
 * This class converts the state of a ChaosCanvas to a WritableImage.
 */
public class ChaosCanvasToImageConverter {

  /**
   * The image to be created.
   */
  private WritableImage image;

  /**
   * Convert the canvas to a writable image.
   *
   * @param chaosCanvas the canvas to work upon.
   */
  public ChaosCanvasToImageConverter(ChaosCanvas chaosCanvas) {
    int width = chaosCanvas.getWidth();
    int height = chaosCanvas.getHeight();
    image = new WritableImage(width, height);
    PixelWriter pixelWriter = image.getPixelWriter();

    int[][] canvasArray = chaosCanvas.getCanvasArray();
    for (int i = 0; i < width; i++) {
      for (int j = 0; j < height; j++) {
        if (canvasArray[i][j] == 1) {
          pixelWriter.setColor(j, i, Color.BLACK);
        } else {
          pixelWriter.setColor(j, i, Color.WHITE);
        }
      }
    }
  }

  /**
   * Get the image.
   *
   * @return the image.
   */
  public WritableImage getImage() {
    return image;
  }

}