package net.krazyweb.helpers;
import javafx.scene.Node;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.image.PixelReader;
import javafx.scene.image.PixelWriter;
import javafx.scene.image.WritableImage;
import javafx.scene.paint.Color;
public class FXHelper {
public static void setColor(final Node image, final Color color) {
FXHelper.setColor(image, color.getRed(), color.getGreen(), color.getBlue());
}
public static void setColor(final Node image, final double r, final double g, final double b) {
Image src = ((ImageView) image).getImage();
PixelReader reader = src.getPixelReader();
int width = (int) src.getWidth();
int height = (int) src.getHeight();
WritableImage dest = new WritableImage(width, height);
PixelWriter writer = dest.getPixelWriter();
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
Color c = new Color(r, g, b, reader.getColor(x, y).getOpacity());
writer.setColor(x, y, c);
}
}
((ImageView) image).setImage(dest);
}
}