/** * Constructor, used for reading a TIFF * * @param tileRow tile row */ public CoverageDataTiffImage(TileRow tileRow) { imageBytes = tileRow.getTileData(); TIFFImage tiffImage = TiffReader.readTiff(imageBytes); directory = tiffImage.getFileDirectory(); CoverageDataTiff.validateImageType(directory); width = directory.getImageWidth().intValue(); height = directory.getImageHeight().intValue(); }
/** * Constructor, used for reading a TIFF * * @param tileRow * tile row */ public CoverageDataTiffImage(TileRow tileRow) { imageBytes = tileRow.getTileData(); TIFFImage tiffImage = TiffReader.readTiff(imageBytes); directory = tiffImage.getFileDirectory(); CoverageDataTiff.validateImageType(directory); width = directory.getImageWidth().intValue(); height = directory.getImageHeight().intValue(); }
/** * Get the pixel value as a float from the image and the coordinate * * @param imageBytes image bytes * @param x x coordinate * @param y y coordinate * @return float pixel value */ public float getPixelValue(byte[] imageBytes, int x, int y) { TIFFImage tiffImage = TiffReader.readTiff(imageBytes); FileDirectory directory = tiffImage.getFileDirectory(); validateImageType(directory); Rasters rasters = directory.readRasters(); float pixelValue = rasters.getFirstPixelSample(x, y).floatValue(); return pixelValue; }
/** * Get the pixel value as a float from the image and the coordinate * * @param imageBytes * image bytes * @param x * x coordinate * @param y * y coordinate * @return float pixel value */ public float getPixelValue(byte[] imageBytes, int x, int y) { TIFFImage tiffImage = TiffReader.readTiff(imageBytes); FileDirectory directory = tiffImage.getFileDirectory(); validateImageType(directory); Rasters rasters = directory.readRasters(); float pixelValue = rasters.getFirstPixelSample(x, y).floatValue(); return pixelValue; }
/** * Get the pixel values of the image as floats * * @param imageBytes * image bytes * @return float pixel values */ public float[] getPixelValues(byte[] imageBytes) { TIFFImage tiffImage = TiffReader.readTiff(imageBytes); FileDirectory directory = tiffImage.getFileDirectory(); validateImageType(directory); Rasters rasters = directory.readRasters(); float[] pixels = new float[rasters.getWidth() * rasters.getHeight()]; for (int y = 0; y < rasters.getHeight(); y++) { for (int x = 0; x < rasters.getWidth(); x++) { int index = rasters.getSampleIndex(x, y); pixels[index] = rasters.getPixelSample(0, x, y).floatValue(); } } return pixels; }
/** * Get the pixel values of the image as floats * * @param imageBytes image bytes * @return float pixel values */ public float[] getPixelValues(byte[] imageBytes) { TIFFImage tiffImage = TiffReader.readTiff(imageBytes); FileDirectory directory = tiffImage.getFileDirectory(); validateImageType(directory); Rasters rasters = directory.readRasters(); float[] pixels = new float[rasters.getWidth() * rasters.getHeight()]; for (int y = 0; y < rasters.getHeight(); y++) { for (int x = 0; x < rasters.getWidth(); x++) { int index = rasters.getSampleIndex(x, y); pixels[index] = rasters.getPixelSample(0, x, y).floatValue(); } } return pixels; }