private Image getHuesCircle(int width, int height) { WritableImage raster = new WritableImage(width, height); PixelWriter pixelWriter = raster.getPixelWriter(); Point2D center = new Point2D((double) width / 2, (double) height / 2); double rsmall = 0.8 * width / 2; double rbig = (double) width / 2; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { double dx = x - center.getX(); double dy = y - center.getY(); double distance = Math.sqrt((dx * dx) + (dy * dy)); double o = Math.atan2(dy, dx); if (distance > rsmall && distance < rbig) { double H = map(o, -Math.PI, Math.PI, 0, 255); double S = 255; double L = 152; pixelWriter.setColor(x, y, HSL2RGB(H, S, L)); } } } return raster; }
PixelWriter pr = gc.getPixelWriter(); // pr.setColor(x + 10, y + 10, Color.RED); pr.setPixels(x + 10, y + 10, 1, 1, PixelFormat.getIntArgbInstance(), new int[] { 0xffff0000 }, 0, 1); temp = c.snapshot(null, temp);
Arrays.fill(buffer, color); writer.setPixels(x, y, recWidth, recHeight, format, buffer, 0, recWidth); System.out.println("Writer Type: " + writer.getPixelFormat().getType());
// Put this outside the loops // so we have easier access to the writer. PixelWriter pixelWriter = grayImage.getPixelWriter(); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { int pixel = pixelReader.getArgb(x, y); int red = ((pixel >> 16) & 0xff); int green = ((pixel >> 8) & 0xff); int blue = (pixel & 0xff); int grayLevel = (int) (0.2162 * (double)red + 0.7152 * (double)green + 0.0722 * (double)blue) / 3; grayLevel = 255 - grayLevel; // Inverted the grayLevel value here. int gray = (grayLevel << 16) + (grayLevel << 8) + grayLevel; pixelWriter.setArgb(x, y, -gray); // AMENDED TO -gray here. } }
writer.setArgb(x, y, argb);
private Image getSLCricle(int width, int height) { WritableImage raster = new WritableImage(width, height); PixelWriter pixelWriter = raster.getPixelWriter(); Point2D center = new Point2D((double) width / 2, (double) height / 2); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { double dy = x - center.getX(); double dx = y - center.getY(); pixelWriter.setColor(x, y, getColor(dx, dy)); } } return raster; }
int[] pixels = ... ; WritableImage img = new WritableImage(width, height); PixelWriter pw = img.getPixelWriter(); pw.setPixels(0, 0, width, height, PixelFormat.getIntArgbInstance(), pixels, 0, width);
public static Image fastResize(Image image, int width, int height) { if (width <= 0 || height <= 0) { throw new IllegalArgumentException("Dimension must be > 0 (" + width + "/" + height + ")"); } PixelReader reader = image.getPixelReader(); WritableImage writableImage = new WritableImage(width, height); PixelWriter writer = writableImage.getPixelWriter(); double widthFactor = image.getWidth() / width; double heightFactor = image.getHeight() / height; int xToWrite = 0; while (xToWrite < width) { int yToWrite = 0; while (yToWrite < height) { writer.setArgb(xToWrite, yToWrite, reader.getArgb((int) (xToWrite * widthFactor), (int) (yToWrite * heightFactor))); yToWrite++; } xToWrite++; } return writableImage; }
GraphicsContext gc = canvas.getGraphicsContext2D(); PixelWriter pixelWriter = gc.getPixelWriter(); pixelWriter.setColor( 75, 100, Color.FORESTGREEN );
private void color() { PixelReader reader = src.getPixelReader(); WritablePixelFormat<IntBuffer> format = WritablePixelFormat.getIntArgbInstance(); int[] pixels = new int[width * height]; // Buffer for all pixels reader.getPixels(0, 0, width, height, format, pixels, 0, width); // get all pixels by argb format int alpha = 0xFF << 24; for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { int index = x + y * width; int argb = pixels[index]; int red = value * x * y / (width * height); int green = (argb >> 8) & 0xFF; int blue = value * ((width * height) - x * y) / (width * height); int newArgb = alpha | (red << 16) | (green << 8) | blue; pixels[index] = newArgb; } } PixelWriter writer = dest.getPixelWriter(); writer.setPixels(0, 0, width, height, format, pixels, 0, width); // write entire image }
for (int x = 0; x < 1280; x++) { for (int y = 0; y < 720; y++, c--) { pw.setArgb(x, y, c);
public static Image colorPallete(int numColors){ int width=(int)Math.sqrt(numColors); int height=numColors/width; WritableImage img = new WritableImage(width, height); PixelWriter pw = img.getPixelWriter(); AtomicInteger count = new AtomicInteger(); IntStream.range(0, height).boxed() .forEach(y->IntStream.range(0, width).boxed() .forEach(x->pw.setColor(x, y, getColor(count.getAndIncrement(),numColors)))); // save for testing purposes try { ImageIO.write(SwingFXUtils.fromFXImage(img, null), "jpg", new File("palette.jpg")); } catch (IOException ex) { } return img; } private Color getColor(int iColor, int numColors){ // nice palette of colors java.awt.Color c = java.awt.Color.getHSBColor((float) iColor / (float) numColors, 1.0f, 1.0f); return Color.rgb(c.getRed(), c.getGreen(), c.getBlue()); // raw palette //return Color.rgb((iColor >> 16) & 0xFF, (iColor >> 8) & 0xFF, iColor & 0xFF); }
public static void setRGB(WritableImage image, int x, int y, int width, int height, int[] rgb) { PixelWriter writer = image.getPixelWriter(); writer.setPixels(x, y, width, height, PixelFormat.getIntArgbInstance(), rgb, 0, width); }
pixelWriter.setArgb(x, y, 0xff000000 | gray << 16 | gray << 8 | gray);
public class ImageRenderer { public void render(GraphicsContext context, Image image, int sx, int sy, int sw, int sh, int tx, int ty) { PixelReader reader = image.getPixelReader(); PixelWriter writer = context.getPixelWriter(); for (int x = 0; x < sw; x++) { for (int y = 0; y < sh; y++) { Color color = reader.getColor(sx + x, sy + y); if (color.isOpaque()) { writer.setColor(tx + x, ty + y, color); } } } } }
BufferedImage read = ImageIO.read(f); int[] pixels = new int[width * height] ; PixelGrabber grabber = new PixelGrabber(read.getScaledInstance(width, height, Image.SCALE_SMOOTH), 0, 0, width, height, 0, pixels, width); grabber.grabPixels(); WritableImage fxImage = new WritableImage(width, height); PixelWriter pw = fxImage.getPixelWriter(); pw.setPixels(0, 0, width, height, PixelFormat.getIntArgbInstance(), pixels, 0, width);
writer.setArgb(x, y, argb);
private void renderImage(WritableImage img) { PixelWriter pw = img.getPixelWriter(); double w = img.getWidth(); double h = img.getHeight(); for (int ih = 0; ih < h; ih++) { for (int iw = 0; iw < w; iw++) { int value = (serializedRaster == null) ? Integer.MIN_VALUE : serializedRaster[ih * (int) w + iw]; // hue = Math.sin(yRatio*(gridSize*Math.PI))*Math.sin(xRatio*(gridSize*Math.PI))*Math.tan(hueFactor/20.0)*360.0 + hueOffset; // Color c = Color.hsb(hue, 1.0, 1.0); // Color black = Color.BLACK; // Color red = Color.RED; // Color c = (value == Integer.MIN_VALUE) ? red : black; java.awt.Color awtc = palette.getColorForValue(value); Color c = Color.rgb(awtc.getRed(), awtc.getGreen(), awtc.getBlue()); pw.setColor(iw, ih, c); } } }
public static Image crop(Image src, int col, int row) { PixelReader r = src.getPixelReader(); PixelFormat<IntBuffer> pixelFormat = PixelFormat.getIntArgbInstance() ; int[] pixels = new int[Grid.SIZE * Grid.SIZE]; r.getPixels(col * Grid.SIZE, row * Grid.SIZE, Grid.SIZE, Grid.SIZE, pixelFormat, pixels, 0, Grid.SIZE); WritableImage out = new WritableImage(Grid.SIZE, Grid.SIZE); PixelWriter w = out.getPixelWriter(); w.setPixels(0, 0, Grid.SIZE, Grid.SIZE, pixelFormat, pixels, 0, Grid.SIZE); return out ; }
writer.setArgb(x, y, argb);