/** * 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 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; }
/** * 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; }
/** * 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 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 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; }