File f = new File("/path/imagefile.jpg"); //Find a suitable ImageReader Iterator readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while(readers.hasNext()) { reader = (ImageReader)readers.next(); if(reader.canReadRaster()) { break; } } //Stream the image file (the original CMYK image) ImageInputStream input = ImageIO.createImageInputStream(f); reader.setInput(input); //Read the image raster Raster raster = reader.readRaster(0, null); //Create a new RGB image BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR); //Fill the new image with the old raster bi.getRaster().setRect(raster);
while (readers.hasNext()) { reader = readers.next(); if (reader.canReadRaster()) { break;
@Override public boolean canReadRaster() { return delegate.canReadRaster(); }
/** * Finds a suitable image reader for a format. * * @param formatName The format to search for. * @param errorCause The probably cause if something goes wrong. * @return The image reader for the format. * @throws MissingImageReaderException if no image reader is found. */ protected static ImageReader findImageReader(String formatName, String errorCause) throws MissingImageReaderException { Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(formatName); ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader != null && reader.canReadRaster()) { break; } } if (reader == null) { throw new MissingImageReaderException("Cannot read " + formatName + " image: " + errorCause); } return reader; }
private static Raster readJPEGRaster(InputStream stream) throws IOException { // find suitable image reader Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader.canReadRaster()) { break; } } if (reader == null) { throw new MissingImageReaderException( "Cannot read JPEG image: a suitable JAI I/O image filter is not installed"); } try (ImageInputStream iis = ImageIO.createImageInputStream(stream)) { reader.setInput(iis); ImageIO.setUseCache(false); return reader.readRaster(0, null); } finally { reader.dispose(); } }
ir.reset(); ir.setInput(getImageInputStream(data)); if (ir.canReadRaster()) { lastReader = ir; found = true;
else if (delegate.canReadRaster() && ( bogusAdobeDCT || sourceCSType == JPEGColorSpace.CMYK ||
@Override public boolean canReadRaster() { return delegate.canReadRaster(); }
File f = new File("/path/imagefile.jpg"); //Find a suitable ImageReader Iterator readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while(readers.hasNext()) { reader = (ImageReader)readers.next(); if(reader.canReadRaster()) { break; } } //Stream the image file (the original CMYK image) ImageInputStream input = ImageIO.createImageInputStream(f); reader.setInput(input); //Read the image raster Raster raster = reader.readRaster(0, null); //Create a new RGB image BufferedImage bi = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR); //Fill the new image with the old raster bi.getRaster().setRect(raster);
/** * ImageIO cannot read CMYK-jpegs, it throws IIOException(Unsupported Image Type). * This method tries to read cmyk image. * @param file * @return image TYPE_4BYTE_ABGR * @throws Exception */ public static BufferedImage readCMYKImage(File file) throws Exception { Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while(readers.hasNext()) { reader = readers.next(); if(reader.canReadRaster()) break; } FileInputStream fis = new FileInputStream(file); try { ImageInputStream input = ImageIO.createImageInputStream(fis); reader.setInput(input); // original CMYK-jpeg stream Raster raster = reader.readRaster(0, null); // read image raster BufferedImage image = new BufferedImage(raster.getWidth(), raster.getHeight(), BufferedImage.TYPE_4BYTE_ABGR); image.getRaster().setRect(raster); return image; } finally { try { fis.close(); } catch(Exception ex) {} } }
/** * Finds a suitable image reader for a format. * * @param formatName The format to search for. * @param errorCause The probably cause if something goes wrong. * @return The image reader for the format. * @throws MissingImageReaderException if no image reader is found. */ protected static ImageReader findImageReader(String formatName, String errorCause) throws MissingImageReaderException { Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(formatName); ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader != null && reader.canReadRaster()) { break; } } if (reader == null) { throw new MissingImageReaderException("Cannot read " + formatName + " image: " + errorCause); } return reader; }
/** * Finds a suitable image reader for a format. * * @param formatName The format to search for. * @param errorCause The probably cause if something goes wrong. * @return The image reader for the format. * @throws MissingImageReaderException if no image reader is found. */ protected static ImageReader findImageReader(String formatName, String errorCause) throws MissingImageReaderException { Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(formatName); ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader != null && reader.canReadRaster()) { break; } } if (reader == null) { throw new MissingImageReaderException("Cannot read " + formatName + " image: " + errorCause); } return reader; }
private Raster decompressRaster(int imageIndex, ImageReadParam param) throws IOException { if (!reader.canReadRaster()) { BufferedImage bi = reader.read(0, param); postDecompress(); return bi.getRaster(); } Raster raster = reader.readRaster(0, param); postDecompress(); return raster; }
while (readers.hasNext()) { reader = readers.next(); if (reader.canReadRaster()) { break;
private static Raster readJPEGRaster(InputStream stream) throws IOException { // find suitable image reader Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName("JPEG"); ImageReader reader = null; while (readers.hasNext()) { reader = readers.next(); if (reader.canReadRaster()) { break; } } if (reader == null) { throw new MissingImageReaderException( "Cannot read JPEG image: a suitable JAI I/O image filter is not installed"); } try (ImageInputStream iis = ImageIO.createImageInputStream(stream)) { reader.setInput(iis); ImageIO.setUseCache(false); return reader.readRaster(0, null); } finally { reader.dispose(); } }
if (reader.canReadRaster())
/** * Tests the {@link ImageReader#readRaster(int, ImageReadParam) ImageReader.readRaster} method. * This method performs the same test than {@link #testReadAsBufferedImage()}, except that the * {@link ImageReader#readRaster(int, ImageReadParam)} method is invoked instead than * {@code ImageReader.read(int, ImageReadParam)}. * * <p>This test is ignored if {@link ImageReader#canReadRaster()} returns {@code false}.</p> * * @throws IOException if an error occurred while reading the raster. */ @Test public void testReadAsRaster() throws IOException { prepareImageReader(false); assumeTrue(reader.canReadRaster()); testImageReads(API.READ_RASTER); }
ir.reset(); ir.setInput(getImageInputStream(data)); if (ir.canReadRaster()) { lastReader = ir; found = true;
else if (delegate.canReadRaster() && ( bogusAdobeDCT || sourceCSType == JPEGColorSpace.CMYK ||
Raster wr = pmiAfterDecompression == pmi && decompressor.canReadRaster() ? decompressor.readRaster(0, decompressParam(param)) : decompressor.read(0, decompressParam(param)).getRaster();