protected final int getWidth(final IIOImage image) { return image.hasRaster() ? image.getRaster().getWidth() : image.getRenderedImage().getWidth(); }
protected final int getHeight(final IIOImage image) { return image.hasRaster() ? image.getRaster().getHeight() : image.getRenderedImage().getHeight(); }
protected final int getTransferType(final IIOImage image) { return image.hasRaster() ? image.getRaster().getTransferType() : image.getRenderedImage().getSampleModel().getTransferType(); }
protected final int getNumBands(final IIOImage image) { return image.hasRaster() ? image.getRaster().getNumBands() : image.getRenderedImage().getSampleModel().getNumBands(); }
private void writeImageData(final IIOImage image) throws IOException { // - dump data as is (or convert, if TYPE_INT_xxx) // Enforce RGB/CMYK order for such data! // TODO: Loop over x/y tiles, using 0,0 is only valid for BufferedImage // TODO: PNM/PAM does not support tiling, we must iterate all tiles along the x-axis for each row we write Raster tile = image.hasRaster() ? image.getRaster() : image.getRenderedImage().getTile(0, 0); SampleModel sampleModel = tile.getSampleModel(); DataBuffer dataBuffer = tile.getDataBuffer(); int tileWidth = tile.getWidth(); int tileHeight = tile.getHeight(); final int transferType = sampleModel.getTransferType(); Object data = null; for (int y = 0; y < tileHeight; y++) { data = sampleModel.getDataElements(0, y, tileWidth, 1, data, dataBuffer); // TODO: Support other (short, float) data types if (transferType == DataBuffer.TYPE_BYTE) { imageOutput.write((byte[]) data); } else if (transferType == DataBuffer.TYPE_USHORT) { short[] shortData = (short[]) data; imageOutput.writeShorts(shortData, 0, shortData.length); } processImageProgress(y * 100f / tileHeight); // TODO: Take tile y into account if (abortRequested()) { processWriteAborted(); break; } } }
final int type = image.hasRaster() ? image.getRaster().getTransferType() : image.getRenderedImage().getSampleModel().getDataType(); if (type != DataBuffer.TYPE_FLOAT && type != DataBuffer.TYPE_DOUBLE) {
/** * Computes the size of the region to be read, taking subsampling in account. * * @param image The image or raster to be written. * @param parameters The write parameters, or {@code null} if the whole image will be written. * @return dimension The dimension of the image to be written. */ protected static ImageDimension computeSize(final IIOImage image, final ImageWriteParam parameters) { final ImageDimension dimension; if (image.hasRaster()) { dimension = new ImageDimension(image.getRaster()); } else { dimension = new ImageDimension(image.getRenderedImage()); } if (parameters != null) { final Rectangle bounds = parameters.getSourceRegion(); if (bounds != null) { if (bounds.width < dimension.width) { dimension.width = bounds.width; } if (bounds.height < dimension.height) { dimension.height = bounds.height; } } dimension.width -= parameters.getSubsamplingXOffset(); dimension.height -= parameters.getSubsamplingYOffset(); } return dimension; }
if (bounds == null) { if (image.hasRaster()) { bounds = image.getRaster().getBounds(); // Needs to be a clone. } else { final RenderedImage i = image.getRenderedImage(); RectIter iterator; if (image.hasRaster()) { final Raster raster = image.getRaster(); numBands = raster.getNumBands(); iterator = RectIterFactory.create(raster, bounds);
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); } else {
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); originalRegion = inputRaster.getBounds();
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); originalRegion = inputRaster.getBounds();
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); colorModel = ImageUtil.createColorModel(null, sampleModel);
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); originalRegion = inputRaster.getBounds();
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); colorModel = ImageUtil.createColorModel(null, sampleModel);
inputRaster = image.getRaster(); sampleModel = inputRaster.getSampleModel(); colorModel = ImageUtil.createColorModel(null, sampleModel);
if(image != null) { if (image.hasRaster()) setDefaults(image.getRaster()); else setDefaults(image.getRenderedImage());
if(image != null) { if (image.hasRaster()) setDefaults(image.getRaster()); else setDefaults(image.getRenderedImage());
if(image != null) { if (image.hasRaster()) setDefaults(image.getRaster()); else setDefaults(image.getRenderedImage());
if(image != null) { if (image.hasRaster()) setDefaults(image.getRaster()); else setDefaults(image.getRenderedImage());
if(image != null) { if (image.hasRaster()) setDefaults(image.getRaster()); else setDefaults(image.getRenderedImage());