package net.querz.mcaselector.io; import javafx.scene.image.Image; import javafx.scene.image.PixelWriter; import javafx.scene.image.WritableImage; import net.querz.mcaselector.tiles.Tile; import java.awt.geom.AffineTransform; import java.awt.image.AffineTransformOp; import java.awt.image.BufferedImage; public final class ImageHelper { private ImageHelper() {} public static BufferedImage scaleImage(BufferedImage before, double newSize) { double w = before.getWidth(); double h = before.getHeight(); BufferedImage after = new BufferedImage((int) newSize, (int) newSize, BufferedImage.TYPE_INT_ARGB); AffineTransform at = new AffineTransform(); at.scale(newSize / w, newSize / h); AffineTransformOp scaleOp = new AffineTransformOp(at, AffineTransformOp.TYPE_BILINEAR); return scaleOp.filter(before, after); } private static Image empty; public static void reloadEmpty() { WritableImage wImage = new WritableImage(Tile.SIZE, Tile.SIZE); PixelWriter pWriter = wImage.getPixelWriter(); for (int x = 0; x < Tile.SIZE; x++) { for (int y = 0; y < Tile.SIZE; y++) { pWriter.setColor(x, y, Tile.EMPTY_COLOR.makeJavaFXColor()); } } empty = wImage; } public static Image getEmptyTileImage() { return empty; } }