private ImageInfo build() { return new ImageInfo(this); } }
private static char[] createColormap(final int sizeOfColormap, byte[] r, byte[] g, byte[] b) { int redIndex = 0; int greenIndex = sizeOfColormap; int blueIndex = 2 * sizeOfColormap; char[] colormap = new char[sizeOfColormap * 3]; for (int i = 0; i < sizeOfColormap; i++) { // beware of sign extended bytes colormap[redIndex++] = convertColorToColormapChar(0xff & r[i]); colormap[greenIndex++] = convertColorToColormapChar(0xff & g[i]); colormap[blueIndex++] = convertColorToColormapChar(0xff & b[i]); } return colormap; }
private ImageInfo(ImageInfoBuilder builder) { this.numExtraSamples = builder.numExtraSamples; this.extraSampleType = builder.extraSampleType; this.imageType = builder.imageType; this.colormapSize = builder.colormapSize; this.colormap = copyColormap(builder.colormap); this.tileWidth = builder.tileWidth; this.tileHeight = builder.tileHeight; this.numTiles = builder.numTiles; this.bytesPerRow = builder.bytesPerRow; this.bytesPerTile = builder.bytesPerTile; }
ImageInfo imageInfo = ImageInfo.newInstance(im, dataTypeSize, numBands, colorModel, encodeParam); if (imageInfo.getType() == ImageType.UNSUPPORTED) { throw new RuntimeException(PropertyUtil.getString("TIFFImageEncoder8")); final int numTiles = imageInfo.getNumTiles(); final long bytesPerTile = imageInfo.getBytesPerTile(); final long bytesPerRow = imageInfo.getBytesPerRow(); final int tileHeight = imageInfo.getTileHeight(); final int tileWidth = imageInfo.getTileWidth(); new TIFFField(TIFFImageDecoder.TIFF_PHOTOMETRIC_INTERPRETATION, TIFFField.TIFF_SHORT, 1, new char[] {(char) imageInfo.getType().getPhotometricInterpretation()})); if (imageInfo.getColormap() != null) { fields.add(new TIFFField(TIFFImageDecoder.TIFF_COLORMAP, TIFFField.TIFF_SHORT, imageInfo.getColormapSize(), imageInfo.getColormap())); if (imageInfo.getNumberOfExtraSamples() > 0) { char[] extraSamples = new char[imageInfo.getNumberOfExtraSamples()]; for (int i = 0; i < imageInfo.getNumberOfExtraSamples(); i++) { extraSamples[i] = (char) imageInfo.getExtraSamplesType().getValue(); TIFFField.TIFF_SHORT, imageInfo.getNumberOfExtraSamples(), extraSamples));
numBands); if (builder.imageType == ImageType.PALETTE) { builder.colormap = createColormap(colormapSize, r, g, b); builder.colormapSize = colormapSize * 3; ColorSpace colorSpace = colorModel.getColorSpace(); builder.imageType = ImageType.getTypeFromColorSpace(colorSpace, params); builder.numExtraSamples = getNumberOfExtraSamplesForColorSpace(colorSpace, builder.imageType, numBands); builder.extraSampleType = ExtraSamplesType.getValue(colorModel,
char[] getColormap() { return copyColormap(colormap); }