dest.getTransferType() == DataBuffer.TYPE_BYTE && dest.getNumDataElements() >= 3 || dest.getTransferType() == DataBuffer.TYPE_INT && dest.getNumDataElements() == 1, src, "only 3 or 4 byte TYPE_BYTE or 1 int TYPE_INT rasters supported as dest: %s" final byte[] out = new byte[dest.getNumDataElements()]; final int[] out = new int[dest.getNumDataElements()]; final byte[] temp = new byte[3]; // RGB
protected int[][] toIntArrayArray(BufferedImage image) { int w = image.getWidth(), h = image.getHeight(); int[][] ret = new int[h][w]; if (image.getRaster().getNumDataElements() == 1) { Raster raster = image.getRaster(); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { ret[i][j] = raster.getSample(j, i, 0); } } } else { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { ret[i][j] = image.getRGB(j, i); } } } return ret; }
protected int[][] toIntArrayArray(BufferedImage image) { int w = image.getWidth(), h = image.getHeight(); int[][] ret = new int[h][w]; if(image.getRaster().getNumDataElements() == 1 ){ Raster raster = image.getRaster(); for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++){ ret[i][j] = raster.getSample(j, i, 0); } } } else { for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++){ ret[i][j] = image.getRGB(j, i); } } } return ret; }
/** * Get and set variables that determine how picture is stored. * <p/> * Retrieves the writable raster of the buffered image, * as well its transfer type. * <p/> * Sets number of output bytes per pixel, and, if only * eight-bit bytes, turns off alpha encoding. * * @return true if 1-byte or 4-byte data, false otherwise */ protected boolean establishStorageInfo() { wRaster = image.getRaster(); int dataBytes = wRaster.getNumDataElements(); tType = wRaster.getTransferType(); if (((tType == DataBuffer.TYPE_BYTE) && (dataBytes == 4)) || ((tType == DataBuffer.TYPE_INT) && (dataBytes == 1))) { bytesPerPixel = (encodeAlpha) ? 4 : 3; } else if ((tType == DataBuffer.TYPE_BYTE) && (dataBytes == 1)) { bytesPerPixel = 1; encodeAlpha = false; // one-byte samples } else { return false; } return true; }
if (packedInt) { assert src.getRaster().getTransferType() == TYPE_INT; assert src.getRaster().getNumDataElements() == 1;
dest.getTransferType() == DataBuffer.TYPE_BYTE && dest.getNumDataElements() >= 3 || dest.getTransferType() == DataBuffer.TYPE_INT && dest.getNumDataElements() == 1, src, "only 3 or 4 byte TYPE_BYTE or 1 int TYPE_INT rasters supported as dest: %s" final byte[] out = new byte[dest.getNumDataElements()]; final int[] out = new int[dest.getNumDataElements()]; final byte[] temp = new byte[3]; // RGB