/** * {@inheritDoc} */ @Override public CoverageDataPngImage createImage(TileRow tileRow) { return new CoverageDataPngImage(tileRow); }
/** * {@inheritDoc} */ @Override public Double getValue(GriddedTile griddedTile, CoverageDataPngImage image, int x, int y) { Double value = null; if (image.getReader() != null) { int pixelValue = image.getPixel(x, y); value = getValue(griddedTile, pixelValue); } else { value = getValue(griddedTile, image.getImageBytes(), x, y); } return value; }
/** * {@inheritDoc} */ @Override public Double getValue(GriddedTile griddedTile, CoverageDataPngImage image, int x, int y) { return getValue(griddedTile, image.getRaster(), x, y); }
byte[] tileData = tileRow.getTileData(); TestCase.assertTrue(tileData.length > 0); CoverageDataPngImage image = new CoverageDataPngImage(tileRow); int width = image.getWidth(); int height = image.getHeight(); for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int pixelValue = image.getPixel(x, y); pixelValuesList.add(pixelValue);
/** * Draw a coverage data image tile from the double array of unsigned 16 bit * integer pixel values formatted as int[row][width] * * @param unsignedPixelValues unsigned 16 bit integer pixel values as [row][width] * @return coverage data image tile */ public CoverageDataPngImage drawTile(int[][] unsignedPixelValues) { int tileWidth = unsignedPixelValues[0].length; int tileHeight = unsignedPixelValues.length; CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { int unsignedPixelValue = unsignedPixelValues[y][x]; setPixelValue(rowLine, x, unsignedPixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * Draw a coverage data tile and format as PNG bytes from the double array of * "unsigned short" pixel values formatted as short[row][width] * * @param pixelValues "unsigned short" pixel values as [row][width] * @return coverage data image tile bytes */ public byte[] drawTileData(short[][] pixelValues) { CoverageDataPngImage image = drawTile(pixelValues); byte[] bytes = image.getImageBytes(); return bytes; }
/** * Draw a coverage data tile from the double array of "unsigned short" pixel * values formatted as short[row][width] * * @param pixelValues "unsigned short" pixel values as [row][width] * @return coverage data image tile */ public CoverageDataPngImage drawTile(short[][] pixelValues) { int tileWidth = pixelValues[0].length; int tileHeight = pixelValues.length; CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { short pixelValue = pixelValues[y][x]; setPixelValue(rowLine, x, pixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * {@inheritDoc} */ @Override public byte[] drawTileData(GriddedTile griddedTile, Double[][] values) { CoverageDataPngImage image = drawTile(griddedTile, values); byte[] bytes = image.getImageBytes(); return bytes; }
/** * {@inheritDoc} */ @Override public CoverageDataPngImage createImage(TileRow tileRow) { return new CoverageDataPngImage(tileRow); }
/** * Draw a coverage data image tile from the flat array of "unsigned short" * pixel values of length tileWidth * tileHeight where each pixel is at: (y * * tileWidth) + x * * @param pixelValues "unsigned short" pixel values of length tileWidth * tileHeight * @param tileWidth tile width * @param tileHeight tile height * @return coverage data image tile */ public CoverageDataPngImage drawTile(short[] pixelValues, int tileWidth, int tileHeight) { CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { short pixelValue = pixelValues[(y * tileWidth) + x]; setPixelValue(rowLine, x, pixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * {@inheritDoc} */ @Override public byte[] drawTileData(GriddedTile griddedTile, Double[] values, int tileWidth, int tileHeight) { CoverageDataPngImage image = drawTile(griddedTile, values, tileWidth, tileHeight); byte[] bytes = image.getImageBytes(); return bytes; }
/** * Create a new 16 bit single channel image * * @param tileWidth tile width * @param tileHeight tile height * @return image */ public CoverageDataPngImage createImage(int tileWidth, int tileHeight) { ImageInfo imageInfo = new ImageInfo(tileWidth, tileHeight, 16, false, true, false); CoverageDataPngImage image = new CoverageDataPngImage(imageInfo); return image; }
/** * Draw a coverage data image tile from the flat array of unsigned 16 bit * integer pixel values of length tileWidth * tileHeight where each pixel is * at: (y * tileWidth) + x * * @param unsignedPixelValues unsigned 16 bit integer pixel values of length tileWidth * * tileHeight * @param tileWidth tile width * @param tileHeight tile height * @return coverage data image tile */ public CoverageDataPngImage drawTile(int[] unsignedPixelValues, int tileWidth, int tileHeight) { CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { int unsignedPixelValue = unsignedPixelValues[(y * tileWidth) + x]; setPixelValue(rowLine, x, unsignedPixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * Draw a coverage data image tile and format as PNG bytes from the double * array of unsigned 16 bit integer pixel values formatted as * int[row][width] * * @param unsignedPixelValues unsigned 16 bit integer pixel values as [row][width] * @return coverage data image tile bytes */ public byte[] drawTileData(int[][] unsignedPixelValues) { CoverageDataPngImage image = drawTile(unsignedPixelValues); byte[] bytes = image.getImageBytes(); return bytes; }
/** * Draw a coverage data image tile from the double array of unsigned coverage data values * formatted as Double[row][width] * * @param griddedTile gridded tile * @param values coverage data values as [row][width] * @return coverage data image tile */ public CoverageDataPngImage drawTile(GriddedTile griddedTile, Double[][] values) { int tileWidth = values[0].length; int tileHeight = values.length; CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { Double value = values[y][x]; short pixelValue = getPixelValue(griddedTile, value); setPixelValue(rowLine, x, pixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * Draw a coverage data image tile and format as PNG bytes from the flat array * of "unsigned short" pixel values of length tileWidth * tileHeight where * each pixel is at: (y * tileWidth) + x * * @param pixelValues "unsigned short" pixel values of length tileWidth * tileHeight * @param tileWidth tile width * @param tileHeight tile height * @return coverage data image tile bytes */ public byte[] drawTileData(short[] pixelValues, int tileWidth, int tileHeight) { CoverageDataPngImage image = drawTile(pixelValues, tileWidth, tileHeight); byte[] bytes = image.getImageBytes(); return bytes; }
/** * Draw a coverage data image tile from the flat array of coverage data values of length * tileWidth * tileHeight where each coverage data value is at: (y * tileWidth) + x * * @param griddedTile gridded tile * @param values coverage data values of length tileWidth * tileHeight * @param tileWidth tile width * @param tileHeight tile height * @return coverage data image tile */ public CoverageDataPngImage drawTile(GriddedTile griddedTile, Double[] values, int tileWidth, int tileHeight) { CoverageDataPngImage image = createImage(tileWidth, tileHeight); PngWriter writer = image.getWriter(); for (int y = 0; y < tileHeight; y++) { ImageLineInt row = new ImageLineInt(writer.imgInfo, new int[tileWidth]); int[] rowLine = row.getScanline(); for (int x = 0; x < tileWidth; x++) { Double value = values[(y * tileWidth) + x]; short pixelValue = getPixelValue(griddedTile, value); setPixelValue(rowLine, x, pixelValue); } writer.writeRow(row); } writer.end(); image.flushStream(); return image; }
/** * Draw a coverage data image tile and format as PNG bytes from the flat array * of unsigned 16 bit integer pixel values of length tileWidth * tileHeight * where each pixel is at: (y * tileWidth) + x * * @param unsignedPixelValues unsigned 16 bit integer pixel values of length tileWidth * * tileHeight * @param tileWidth tile width * @param tileHeight tile height * @return coverage data image tile bytes */ public byte[] drawTileData(int[] unsignedPixelValues, int tileWidth, int tileHeight) { CoverageDataPngImage image = drawTile(unsignedPixelValues, tileWidth, tileHeight); byte[] bytes = image.getImageBytes(); return bytes; }