Iterator<ImageReader> iter = ImageIO.getImageReaders(iis); while (img==null && iter.hasNext()) { ImageReader reader = iter.next(); ImageReadParam param = reader.getDefaultReadParam(); if (mode > 0) { bis.reset(); iis.close(); iis = new MemoryCacheImageInputStream(bis); reader.setInput(iis, false, true); img = reader.read(0, param); break; case 1: { int bufferedImageType = imageTypeSpecifier.getBufferedImageType(); if (bufferedImageType == BufferedImage.TYPE_BYTE_GRAY) { param.setDestinationType(imageTypeSpecifier); break; ImageTypeSpecifier imageTypeSpecifier = imageTypes.next(); img = imageTypeSpecifier.createBufferedImage(width, height); param.setDestination(img); } else { lastException = new IOException("unable to load even a truncated version of the image."); iis.close();
private void initBoolDecoder() throws IOException { value = 0; /* value = first 16 input bits */ data.seek(offset); value = data.readUnsignedByte() << 8; // value = (data[offset]) << 8; offset++; range = 255; /* initial range is full */ bit_count = 0; /* have not yet shifted out any bits */ }
public void setFrame(ImageInputStream frame) { try { this.frame.flush(); this.frame.close(); this.frame = frame; offset = frame.getStreamPosition(); this.coefProbs=Globals.getDefaultCoefProbs(); tokenBoolDecoders = new Vector<BoolDecoder>(); } catch (IOException e) { e.printStackTrace(); } } }
ImageInputStream inputStream = ImageIO.createImageInputStream(file); try { Iterator<ImageReader> readers = ImageIO.getImageReaders(inputStream); reader.setInput(inputStream); ImageReadParam param = reader.getDefaultReadParam(); param.setDestinationType(reader.getRawImageType(0)); if (param.getDestinationType() == null) { Iterator<ImageTypeSpecifier> types = reader.getImageTypes(0); param.setDestinationType(typeSpecifier); inputStream.close(); if (type <= 0 || type == original.getType()) { image = original; image = new BufferedImage(original.getWidth(), original.getHeight(), type); Graphics2D graphics = image.createGraphics(); ImageOutputStream stream = ImageIO.createImageOutputStream(output);
public static void main(final String[] args) throws IOException { ImageIO.setUseCache(false); ImageInputStream input = ImageIO.createImageInputStream(file); if (input == null) { System.err.println("Could not read file: " + file); Iterator<ImageReader> readers = ImageIO.getImageReaders(input); System.err.println("Reading using: " + reader); reader.addIIOReadWarningListener(new IIOReadWarningListener() { public void warningOccurred(ImageReader source, String warning) { System.err.println("Warning: " + arg + ": " + warning); reader.addIIOReadProgressListener(new ProgressListenerBase() { private static final int MAX_W = 78; int lastProgress = 0; reader.setInput(input); System.err.println("Could not read thumbnails: " + e.getMessage()); e.printStackTrace(); input.close();
public static void main(final String[] args) throws IOException { ImageIO.setUseCache(false); roi = new Rectangle(Integer.parseInt(region[0]), Integer.parseInt(region[1]), Integer.parseInt(region[2]), Integer.parseInt(region[3])); roi = new Rectangle(Integer.parseInt(region[0]), Integer.parseInt(region[1])); Iterator<ImageReader> readers = ImageIO.getImageReaders(input); System.err.println("Reading using: " + reader); reader.addIIOReadProgressListener(listener); reader.setInput(input); param.setDestination(image); System.err.println("Could not read thumbnails: " + arg + ": " + e.getMessage()); e.printStackTrace(); BufferedImage thumbnail = reader.readThumbnail(0, i); showIt(thumbnail, String.format("Thumbnail: %s [%d x %d]", file.getName(), thumbnail.getWidth(), thumbnail.getHeight())); System.err.println("Could not read thumbnails: " + arg + ": " + e.getMessage()); e.printStackTrace(); input.close();
ImageTypeSpecifier rawType = getRawImageType(imageIndex); if (rawType.getColorModel() instanceof IndexColorModel && rawType.getBufferedImageType() != image.getType()) { checkReadParamBandSettings(param, 4, image.getSampleModel().getNumBands()); checkReadParamBandSettings(param, rawType.getNumBands(), image.getSampleModel().getNumBands()); final Rectangle source = new Rectangle(); final Rectangle dest = new Rectangle(); computeRegions(param, width, height, image, source, dest); imageInput.skipBytes(4); // Seems to be 4 byte 0-pad packedSize -= 4; imageInput.readFully(data); DataBufferByte buffer = new DataBufferByte(data, data.length / 2, 0); WritableRaster raster = Raster.createPackedRaster(buffer, width, height, resource.depth(), null); DataBufferByte maskBuffer = new DataBufferByte(data, data.length / 2, data.length / 2); WritableRaster mask = Raster.createPackedRaster(maskBuffer, width, height, resource.depth(), null); DataBufferByte buffer = new DataBufferByte(data, data.length); WritableRaster raster = Raster.createPackedRaster(buffer, width, height, resource.depth(), null); image.getAlphaRaster().setRect(mask); image.getAlphaRaster().setRect(mask);
int rowBytesRaw = pStream.readUnsignedShort(); int rowBytes = rowBytesRaw & 0x7FFF; boolean isPixMap = (rowBytesRaw & 0x8000) > 0; Rectangle bounds = new Rectangle(); int y = pStream.readUnsignedShort(); int x = pStream.readUnsignedShort(); bounds.setLocation(x, y); y = pStream.readUnsignedShort(); x = pStream.readUnsignedShort(); bounds.setSize(x - bounds.x, y - bounds.y); int pmVersion = pStream.readUnsignedShort(); if (DEBUG) { System.out.print(", pmVersion: " + pmVersion); int packType = pStream.readUnsignedShort(); if (DEBUG) { System.out.print(", packType: " + packType); int packSize = pStream.readInt(); if (DEBUG) { System.out.println(", packSize: " + packSize); int pixelType = pStream.readUnsignedShort(); if (DEBUG) { if (pixelType == 0) {
try { ImageInputStream iis = ImageIO.createImageInputStream( is ); try { Iterator<ImageReader> i = ImageIO.getImageReaders( iis ); ImageReader r = i.next(); try { r.setInput( iis ); BufferedImage img = r.read(0); if (dpi[1] == 0) dpi[1] = PIXEL_DPI; size.width = img.getWidth()*PIXEL_DPI/dpi[0]; size.height = img.getHeight()*PIXEL_DPI/dpi[1]; } finally { r.dispose(); iis.close();
imageInput.seek(stripTileOffsets[i]); adapter = createUnpredictorStream(predictor, stripTileWidth, numBands, bitsPerSample, adapter, imageInput.getByteOrder()); adapter = new YCbCr16UpsamplerStream(adapter, yCbCrSubsampling, yCbCrPos, colsInTile, imageInput.getByteOrder()); adapter = new BitPaddingStream(adapter, numBands, bitsPerSample, colsInTile, imageInput.getByteOrder()); input = imageInput.getByteOrder() == ByteOrder.BIG_ENDIAN ? new DataInputStream(adapter) : new LittleEndianDataInputStream(adapter); imageInput.seek(stripTileOffsets[i]); imageInput.seek(jpegOffset); short expectedSOI = (short) (imageInput.readByte() << 8 | imageInput.readByte()); if (expectedSOI != (short) JPEG.SOI) { if (stripTileOffsets != null && stripTileOffsets.length == 1) { imageInput.seek(stripTileOffsets[0]); expectedSOI = (short) (imageInput.readByte() << 8 | imageInput.readByte()); if (expectedSOI == (short) JPEG.SOI) { realJPEGOffset = stripTileOffsets[0]; imageInput.seek(stripTileOffsets[0]); if ((short) (imageInput.readByte() << 8 | imageInput.readByte()) == (short) JPEG.SOS) { int len = 2 + (imageInput.readByte() << 8 | imageInput.readByte());
@Override public RenderedImage readFrom( Class<RenderedImage> type, Type genericType, Annotation annotations[], MediaType mediaType, MultivaluedMap<String, String> httpHeaders, InputStream entityStream) throws IOException { if (IMAGE_MEDIA_TYPE.isCompatible(mediaType)) { Iterator<ImageReader> readers = ImageIO.getImageReadersByMIMEType(mediaType.toString()); if (!readers.hasNext()) { throw new IOException("The image-based media type " + mediaType + "is not supported for reading"); } ImageReader reader = readers.next(); ImageInputStream in = ImageIO.createImageInputStream(entityStream); reader.setInput(in, true, true); BufferedImage bi = reader.read(0, reader.getDefaultReadParam()); in.close(); reader.dispose(); return bi; } else { return ImageIO.read(entityStream); } }
BufferedImage destination = getDestination(param, getImageTypes(imageIndex), width, height); ColorModel colorModel = destination.getColorModel(); if (colorModel instanceof IndexColorModel && ((IndexColorModel) colorModel).getMapSize() < header.getColorsUsed()) { processWarningOccurred( imageInput.seek(pixelOffset); DataInput input; case DIB.COMPRESSION_RLE4: if (header.getBitCount() != 4) { throw new IIOException(String.format("Unsupported combination of bitCount/compression: %s/%s", header.getBitCount(), header.getCompression())); throw new IIOException(String.format("Unsupported combination of bitCount/compression: %s/%s", header.getBitCount(), header.getCompression())); throw new IIOException("Unsupported compression: " + header.getCompression()); Rectangle srcRegion = new Rectangle(); Rectangle destRegion = new Rectangle(); computeRegions(param, width, height, destination, srcRegion, destRegion); WritableRaster destRaster = clipToRect(destination.getRaster(), destRegion, param != null ? param.getDestinationBands() : null); checkReadParamBandSettings(param, rawType.getNumBands(), destRaster.getNumBands()); param != null ? param.getSourceBands() : null, param != null ? param.getSourceXSubsampling() : 1);
getClass().getResourceAsStream("/jpeg/gray-sample.jpg")); ImageInputStream stream = ImageIO.createImageInputStream(input); stream.seek(42); assertEquals(386, image.getWidth()); assertEquals(396, image.getHeight()); } finally { reader.dispose();
BufferedImage layer = getDestination(param, getImageTypes(layerIndex + 1), Math.max(1, width), Math.max(1, height)); imageInput.seek(findLayerStartPos(layerIndex)); Rectangle area = new Rectangle(width, height); final WritableRaster raster = layer.getRaster(); final ColorModel destCM = layer.getColorModel(); final boolean banded = raster.getDataBuffer().getNumBanks() > 1; final int interleavedBands = banded ? 1 : raster.getNumBands(); int compression = imageInput.readUnsignedShort(); imageInput.skipBytes(channelInfo.length - 2); int c = channelInfo.channelId == -1 ? rowRaster.getNumBands() - 1 : channelInfo.channelId; byteCounts[i] = header.largeFormat ? imageInput.readInt() : imageInput.readUnsignedShort(); break; default: throw new IIOException(String.format("Unknown PSD bit depth: %s", header.bits));
Rectangle srcRegion = new Rectangle(); Rectangle destRegion = new Rectangle(); computeRegions(param, width, height, destination, srcRegion, destRegion); WritableRaster destRaster = clipToRect(destination.getRaster(), destRegion, param != null ? param.getDestinationBands() : null); checkReadParamBandSettings(param, rawType.getNumBands(), destRaster.getNumBands()); WritableRaster rowRaster = rawType.createBufferedImage(width, 1).getRaster(); param != null ? param.getSourceBands() : null, param != null ? param.getSourceXSubsampling() : 1); scanlineOffsets = new int[height * header.getChannels()]; scanlineLengths = new int[height * header.getChannels()]; imageInput.readFully(scanlineOffsets, 0, scanlineOffsets.length); imageInput.readFully(scanlineLengths, 0, scanlineLengths.length); WritableRaster destChannel = destRaster.createWritableChild(destRaster.getMinX(), destRaster.getMinY(), destRaster.getWidth(), destRaster.getHeight(), 0, 0, new int[] {c}); Raster srcChannel = clippedRow.createChild(clippedRow.getMinX(), 0, clippedRow.getWidth(), 1, 0, 0, new int[] {c}); switch (header.getBytesPerPixel()) { case 1: byte[] rowDataByte = ((DataBufferByte) rowRaster.getDataBuffer()).getData(c); readRowByte(height, srcRegion, scanlineOffsets, scanlineLengths, compression, xSub, ySub, c, rowDataByte, destChannel, srcChannel, y); break;
if (url != null) { if (name.endsWith(".png")) { ImageInputStream stream = ImageIO.createImageInputStream(url.openStream()); ImageReadParam param = PNG_READER.getDefaultReadParam(); try { PNG_READER.setInput(stream, true, true); result = PNG_READER.read(0, param); stream.close(); result = ImageIO.read(url);
Rectangle srcRegion = new Rectangle(width, height); WritableRaster destRaster = destination.getRaster(); WritableRaster rowRaster = rawType.createBufferedImage(width, 1).getRaster(); imageInput.seek(extensions.getThumbnailOffset() + 2); case 24: case 32: byte[] rowDataByte = ((DataBufferByte) rowRaster.getDataBuffer()).getData(); readRowByte(imageInput, height, srcRegion, header.getOrigin(), 1, 1, rowDataByte, destRaster, rowRaster, y); break; case 16: short[] rowDataUShort = ((DataBufferUShort) rowRaster.getDataBuffer()).getData(); readRowUShort(imageInput, height, srcRegion, header.getOrigin(), 1, 1, rowDataUShort, destRaster, rowRaster, y); break;
ImageInputStream iis = ImageIO.createImageInputStream(sourceFile); Iterator<ImageReader> readers = ImageIO.getImageReaders(iis); if (!readers.hasNext()) reader.setInput(iis); inputFormatName = reader.getFormatName(); ImageReadParam irParam = reader.getDefaultReadParam(); int width = reader.getWidth(FIRST_IMAGE_INDEX); int height = reader.getHeight(FIRST_IMAGE_INDEX); Rectangle sourceRegion = region.calculate(width, height); irParam.setSourceRegion(sourceRegion); irParam.setSourceSubsampling(subsampling, subsampling, 0, 0); reader.dispose(); iis.close();
reader.setInput(iis, true, true); ImageReadParam irp = reader.getDefaultReadParam(); irp.setSourceRegion(options.getSourceRegion()); irp.setSourceSubsampling(options.getSubsamplingX(), options.getSubsamplingY(), options.getSubsamplingOffsetX(), options.getSubsamplingOffsetY()); options.setFilterSubsampled(true); try image = reader.read(0, irp); int bpc = image.getColorModel().getPixelSize() / image.getRaster().getNumBands(); parameters.setInt(COSName.BITS_PER_COMPONENT, bpc); if (image.getSampleModel() instanceof MultiPixelPackedSampleModel && image.getColorModel().getPixelSize() == 1 && image.getRaster().getNumBands() == 1 && image.getColorModel() instanceof IndexColorModel) iis.close(); reader.dispose();
try (ImageInputStream iis = ImageIO.createImageInputStream(encoded)) if (iis.read() != 0x0A) iis.seek(0); reader.setInput(iis); ImageReadParam irp = reader.getDefaultReadParam(); irp.setSourceSubsampling(options.getSubsamplingX(), options.getSubsamplingY(), options.getSubsamplingOffsetX(), options.getSubsamplingOffsetY()); irp.setSourceRegion(options.getSourceRegion()); options.setFilterSubsampled(true); ImageIO.setUseCache(false); Raster raster; BufferedImage image = reader.read(0, irp); raster = image.getRaster(); decoded.write(dataBuffer.getData());