/** * Get the pixel values of the buffered image as "unsigned shorts" * * @param image * tile image * @return "unsigned short" pixel values */ public short[] getPixelValues(BufferedImage image) { validateImageType(image); WritableRaster raster = image.getRaster(); short[] pixelValues = getPixelValues(raster); return pixelValues; }
/** * Get the pixel value as an "unsigned short" * * @param image * tile image * @param x * x coordinate * @param y * y coordinate * @return "unsigned short" pixel value */ public short getPixelValue(BufferedImage image, int x, int y) { validateImageType(image); WritableRaster raster = image.getRaster(); short pixelValue = getPixelValue(raster, x, y); return pixelValue; }
/** * Constructor, used for reading a PNG * * @param tileRow tile row */ public CoverageDataPngImage(TileRow tileRow) { imageBytes = tileRow.getTileData(); reader = new PngReaderInt(new ByteArrayInputStream(imageBytes)); CoverageDataPng.validateImageType(reader); width = reader.imgInfo.cols; height = reader.imgInfo.rows; }
/** * Get the pixel value as a 16 bit unsigned integer value * * @param imageBytes image bytes * @param x x coordinate * @param y y coordinate * @return pixel value */ public int getPixelValue(byte[] imageBytes, int x, int y) { PngReaderInt reader = new PngReaderInt(new ByteArrayInputStream(imageBytes)); validateImageType(reader); ImageLineInt row = (ImageLineInt) reader.readRow(y); int pixelValue = row.getScanline()[x]; reader.close(); return pixelValue; }
/** * Get the pixel values of the image as 16 bit unsigned integer values * * @param imageBytes image bytes * @return 16 bit unsigned integer pixel values */ public int[] getPixelValues(byte[] imageBytes) { PngReaderInt reader = new PngReaderInt(new ByteArrayInputStream(imageBytes)); validateImageType(reader); int[] pixels = new int[reader.imgInfo.cols * reader.imgInfo.rows]; int rowNumber = 0; while (reader.hasMoreRows()) { ImageLineInt row = reader.readRowInt(); int[] rowValues = row.getScanline(); System.arraycopy(rowValues, 0, pixels, rowNumber * reader.imgInfo.cols, rowValues.length); rowNumber++; } reader.close(); return pixels; }