public static Image getImageFromArray(int[] pixels, int width, int height) { BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); WritableRaster raster = (WritableRaster) image.getData(); raster.setPixels(0,0,width,height,pixels); return image; }
0x200) >> 10; raster.setPixels(left, y, width, 1, buffer);
/** * Converts an image (RGB, RGBA, ... whatever) to a binary one based on given threshold * * @param image the image to convert. Remains untouched. * @param threshold the threshold in [0,255] * @return a new BufferedImage instance of TYPE_BYTE_GRAY with only 0'S and 255's */ public static BufferedImage thresholdImage(BufferedImage image, int threshold) { BufferedImage result = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY); result.getGraphics().drawImage(image, 0, 0, null); WritableRaster raster = result.getRaster(); int[] pixels = new int[image.getWidth()]; for (int y = 0; y < image.getHeight(); y++) { raster.getPixels(0, y, image.getWidth(), 1, pixels); for (int i = 0; i < pixels.length; i++) { if (pixels[i] < threshold) pixels[i] = 0; else pixels[i] = 255; } raster.setPixels(0, y, image.getWidth(), 1, pixels); } return result; }
/** * Converts an image (RGB, RGBA, ... whatever) to a binary one based on given threshold * * @param image the image to convert. Remains untouched. * @param threshold the threshold in [0,255] * @return a new BufferedImage instance of TYPE_BYTE_GRAY with only 0'S and 255's */ public static BufferedImage thresholdImage(BufferedImage image, int threshold) { BufferedImage result = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_BYTE_GRAY); result.getGraphics().drawImage(image, 0, 0, null); WritableRaster raster = result.getRaster(); int[] pixels = new int[image.getWidth()]; for (int y = 0; y < image.getHeight(); y++) { raster.getPixels(0, y, image.getWidth(), 1, pixels); for (int i = 0; i < pixels.length; i++) { if (pixels[i] < threshold) pixels[i] = 0; else pixels[i] = 255; } raster.setPixels(0, y, image.getWidth(), 1, pixels); } return result; }
private WritableRaster fromBGRtoRGB(Raster raster) { WritableRaster writableRaster = raster.createCompatibleWritableRaster(); int width = raster.getWidth(); int height = raster.getHeight(); int w3 = width * 3; int[] tab = new int[w3]; //BEWARE: handling the full image at a time is slower than one line at a time for (int y = 0; y < height; y++) { raster.getPixels(0, y, width, 1, tab); for (int off = 0; off < w3; off += 3) { int tmp = tab[off]; tab[off] = tab[off + 2]; tab[off + 2] = tmp; } writableRaster.setPixels(0, y, width, 1, tab); } return writableRaster; }
int[] p = new int[1]; raster.setPixels(0, 0, 1, raster.getHeight(), pCol); raster.setPixels(1, 0, 1, raster.getHeight(), pCol); raster.setPixels(raster.getWidth() - 1, 0, 1, raster.getHeight(), pCol); raster.setPixels(raster.getWidth() - 2, 0, 1, raster.getHeight(), pCol); raster.setPixels(0, 0, raster.getWidth(), 1, pRow); raster.setPixels(0, 1, raster.getWidth(), 1, pRow); raster.setPixels(0, raster.getHeight() - 1, raster.getWidth(), 1, pRow); raster.setPixels(0, raster.getHeight() - 2, raster.getWidth(), 1, pRow);
int[] p = new int[1]; raster.setPixels(0, 0, 1, raster.getHeight(), pCol); raster.setPixels(1, 0, 1, raster.getHeight(), pCol); raster.setPixels(raster.getWidth() - 1, 0, 1, raster.getHeight(), pCol); raster.setPixels(raster.getWidth() - 2, 0, 1, raster.getHeight(), pCol); raster.setPixels(0, 0, raster.getWidth(), 1, pRow); raster.setPixels(0, 1, raster.getWidth(), 1, pRow); raster.setPixels(0, raster.getHeight() - 1, raster.getWidth(), 1, pRow); raster.setPixels(0, raster.getHeight() - 2, raster.getWidth(), 1, pRow);
raster.setPixels(0, 0, w, h, data); return raster;
raster.setPixels(0, 0, w, h, data); return raster;
raster.setPixels(0, 0, w, h, data); return raster;
raster.setPixels(0, 0, w, h, data); return raster;
@Override protected void store(final int x, final int y) { dstRaster.setPixels(x, y, length, 1, data); } }
public void zeroRect(Rectangle r) { synchronized (this) { if ((zeros == null) || (zeros.length <r.width*bands)) zeros = new int[r.width*bands]; } for (int y=0; y<r.height; y++) { wr.setPixels(r.x, r.y+y, r.width, 1, zeros); } }
@Override protected void store(final int x, final int y) { dstRaster.setPixels(x, y, length, 1, data); } }
destTile.setPixels(bounds.x, bounds.y, bounds.width, bounds.height, data); destImage.releaseWritableTile(xt, yt);
final int w = bitmap.getWidth(); final int h = bitmap.getHeight(); final WritableRaster wr = bitmap.getData(); bitfloat = wr.getPixels(0, 0, w, h, bitfloat); // do processing here wr.setPixels(0, 0, w, h, bitfloat);
QuantizeFilter q = new QuantizeFilter(); int [] inPixels = new int[image.getWidth()*image.getHeight()*3]; int [] outPixels = new int[image.getWidth()*image.getHeight()*3]; image.getRaster().getPixels( 0, 0, image.getWidth(), image.getHeight(), inPixels ); q.quantize(inPixels, outPixels, image.getWidth(), image.getHeight(), 64, false, false); WritableRaster raster = (WritableRaster) image.getData(); raster.setPixels(0,0,width,height,outPixels);
final int w = bitmap.getWidth(); final int h = bitmap.getHeight(); final WritableRaster wr = bitmap.getData(); int []data = wr.getPixels(0, 0, w, h, data); // do processing here wr.setPixels(0, 0, w, h, data);
public static BufferedImage applyAlphaMask(BufferedImage src, BufferedImage mask) { WritableRaster alpha = mask.getAlphaRaster(); int[] data = new int[mask.getWidth() * mask.getHeight()]; alpha.getPixels(0, 0, mask.getWidth(), mask.getHeight(), data); if (src.getAlphaRaster() == null) { BufferedImage t = new BufferedImage(src.getWidth(), src.getHeight(), BufferedImage.TYPE_INT_ARGB); t.getGraphics().drawImage(src, 0, 0, null); src = t; } src.getAlphaRaster().setPixels(0, 0, mask.getWidth(), mask.getHeight(), data); return src; }
protected BufferedImage makeImage( final ImageProcessor ip, final FloatProcessor mask ) { final BufferedImage transformedImage = new BufferedImage( ip.getWidth(), ip.getHeight(), null == mask ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB ); final Image img = ip.createImage(); transformedImage.createGraphics().drawImage( img, 0, 0, null ); img.flush(); if (null != mask) { transformedImage.getAlphaRaster().setPixels( 0, 0, ip.getWidth(), ip.getHeight(), ( float[] )mask.getPixels() ); } return transformedImage; }