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(); }
public void write(final IIOMetadata pStreamMetadata, final IIOImage pImage, final ImageWriteParam pParam) throws IOException { assertOutput(); if (pImage.hasRaster()) { throw new UnsupportedOperationException("Cannot write raster");
public void write(IIOMetadata pStreamMetadata, IIOImage pImage, ImageWriteParam pParam) throws IOException { assertOutput(); if (pImage.hasRaster()) { throw new UnsupportedOperationException("Cannot write raster"); } processImageStarted(0); // Prepare image data to be written ByteArrayOutputStream imageData = new FastByteArrayOutputStream(1024); packImageData(imageData, pImage.getRenderedImage(), pParam); //System.out.println("Image data: " + imageData.size()); // Write metadata writeMeta(pImage.getRenderedImage(), imageData.size()); // Write image data writeBody(imageData); processImageComplete(); }
if (image.hasRaster()) {
if (image.hasRaster()) { throw new UnsupportedOperationException("image has a Raster");
private boolean isDestinationCMYK(final IIOImage image, final ImageWriteParam param) { // If destination type != null, rendered image type doesn't matter return !image.hasRaster() && image.getRenderedImage().getColorModel().getColorSpace().getType() == ColorSpace.TYPE_CMYK || param != null && param.getDestinationType() != null && param.getDestinationType().getColorModel().getColorSpace().getType() == ColorSpace.TYPE_CMYK; }
assertOutput(); if (image.hasRaster()) { throw new UnsupportedOperationException("Raster not supported");
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; } } }
if (image.hasRaster()) { throw new UnsupportedOperationException("image has a Raster");
public void writeToSequence(IIOImage image, ImageWriteParam param) throws IOException { if (stream == null) { throw new IllegalStateException("output == null!"); } if (image == null) { throw new IllegalArgumentException("image == null!"); } if (image.hasRaster()) { throw new UnsupportedOperationException("canWriteRasters() == false!"); } if (!isWritingSequence) { throw new IllegalStateException("prepareWriteSequence() was not invoked!"); } write(!wroteSequenceHeader, false, theStreamMetadata, image, param); if (!wroteSequenceHeader) { wroteSequenceHeader = true; } this.imageIndex++; }
public void writeToSequence(IIOImage image, ImageWriteParam param) throws IOException { if (stream == null) { throw new IllegalStateException("output == null!"); } if (image == null) { throw new IllegalArgumentException("image == null!"); } if (image.hasRaster()) { throw new UnsupportedOperationException("canWriteRasters() == false!"); } if (!isWritingSequence) { throw new IllegalStateException("prepareWriteSequence() was not invoked!"); } write(!wroteSequenceHeader, false, theStreamMetadata, image, param); if (!wroteSequenceHeader) { wroteSequenceHeader = true; } this.imageIndex++; }
public void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException { if (image == null) throw new IllegalArgumentException("image == null"); if (image.hasRaster()) throw new UnsupportedOperationException("Cannot write rasters"); Object output = getOutput(); if (output == null) throw new IllegalStateException("output was not set"); if (param == null) param = getDefaultWriteParam(); ImageOutputStream ios = (ImageOutputStream) output; RenderedImage ri = image.getRenderedImage(); if (ri instanceof BufferedImage) { BufferedImage bi = (BufferedImage) ri; PPMEncoder encoder = new PPMEncoder(bi, ios); encoder.encode(); } else { throw new IOException("Image not of type BufferedImage"); } }
public void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException { if (image == null) throw new IllegalArgumentException("image == null"); if (image.hasRaster()) throw new UnsupportedOperationException("Cannot write rasters"); Object output = getOutput(); if (output == null) throw new IllegalStateException("output was not set"); if (param == null) param = getDefaultWriteParam(); ImageOutputStream ios = (ImageOutputStream) output; RenderedImage ri = image.getRenderedImage(); if (ri instanceof BufferedImage) { BufferedImage bi = (BufferedImage) ri; boolean interlaced = param.getProgressiveMode() != ImageWriteParam.MODE_DISABLED; GIFEncoder encoder = new GIFEncoder(bi, ios, interlaced); encoder.encode(); } else { throw new IOException("Image not of type BufferedImage"); } }
public void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException { if (image == null) throw new IllegalArgumentException("image == null"); if (image.hasRaster()) throw new UnsupportedOperationException("Cannot write rasters"); Object output = getOutput(); if (output == null) throw new IllegalStateException("output was not set"); if (param == null) param = getDefaultWriteParam(); ImageOutputStream ios = (ImageOutputStream) output; RenderedImage ri = image.getRenderedImage(); RawImageWriteParam rawParam = (RawImageWriteParam) param; byte[] bytes = ImageUtilities.getBytes(ri, rawParam.getBackground(), rawParam.getCode(), rawParam.getPad()); ios.write(bytes); }
public void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException { if (image == null) throw new IllegalArgumentException("image == null"); if (image.hasRaster()) throw new UnsupportedOperationException("Cannot write rasters"); Object output = getOutput(); if (output == null) throw new IllegalStateException("output was not set"); if (param == null) param = getDefaultWriteParam(); ImageOutputStream ios = (ImageOutputStream) output; RenderedImage ri = image.getRenderedImage(); RawImageWriteParam rawParam = (RawImageWriteParam) param; byte[] bytes = ImageUtilities.getBytes(ri, rawParam.getBackground(), rawParam.getCode(), rawParam.getPad()); ios.write(bytes); }
public void write(IIOMetadata pStreamMetadata, IIOImage pImage, ImageWriteParam pParam) throws IOException { assertOutput(); if (pImage.hasRaster()) { throw new UnsupportedOperationException("Cannot write raster"); } processImageStarted(0); // Prepare image data to be written ByteArrayOutputStream imageData = new FastByteArrayOutputStream(1024); packImageData(imageData, pImage.getRenderedImage(), pParam); //System.out.println("Image data: " + imageData.size()); // Write metadata writeMeta(pImage.getRenderedImage(), imageData.size()); // Write image data writeBody(imageData); processImageComplete(); }
private boolean isDestinationCMYK(final IIOImage image, final ImageWriteParam param) { // If destination type != null, rendered image type doesn't matter return !image.hasRaster() && image.getRenderedImage().getColorModel().getColorSpace().getType() == ColorSpace.TYPE_CMYK || param != null && param.getDestinationType() != null && param.getDestinationType().getColorModel().getColorSpace().getType() == ColorSpace.TYPE_CMYK; }