private BufferedImage readImage2(byte[] imageBytes) throws IOException { SeekableStream stream = new ByteArraySeekableStream(imageBytes); String decoderName = null; for (String dn : ImageCodec.getDecoderNames(stream)) { decoderName = dn; break; } ImageDecoder decoder = ImageCodec.createImageDecoder(decoderName, stream, null); PlanarImage img = PlanarImage.wrapRenderedImage(decoder.decodeAsRenderedImage()); return img.getAsBufferedImage(); }
ByteArraySeekableStream inputStream = new ByteArraySeekableStream(outputStream.toByteArray()); final MemoryCacheImageInputStream imageStream = new MemoryCacheImageInputStream(inputStream); Iterator<ImageReader> imageReaders = ImageIO.getImageReaders(imageStream); TIFFRenderedImage image = (TIFFRenderedImage) imageReader.readAsRenderedImage(0, readParam); assertEquals(1, image.getSampleModel().getNumBands()); inputStream.close();
SeekableStream stream = new ByteArraySeekableStream(tileBytes); String decoderName = null;
/** * Fallback Method, in some jre implementations, ImageIO.read(InputStream in) returns null. If * this happens, this method is called, which is not so efficient but it works * * @param imageBytes * @return * @throws IOException */ private BufferedImage readImage2(byte[] imageBytes) throws IOException { SeekableStream stream = new ByteArraySeekableStream(imageBytes); String decoderName = null; for (String dn : ImageCodec.getDecoderNames(stream)) { decoderName = dn; break; } ImageDecoder decoder = ImageCodec.createImageDecoder(decoderName, stream, null); PlanarImage img = PlanarImage.wrapRenderedImage(decoder.decodeAsRenderedImage()); return img.getAsBufferedImage(); } }
import javax.media.jai.*; ... def f = request.getFile('myFile') def okContentTypes = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'] if (!okContentTypes.contains(f.getContentType())) { // TODO Tell user: "Image type must be one of: ${okContentTypes}" } else { def destination = "D:\\someFolder\\image.jpg"; byte[] source = f.bytes; SeekableStream inputStream = new ByteArraySeekableStream(source); RenderedOp image = JAI.create("stream", inputStream) JAI.create("filestore",image,destination,"JPEG"); // Destination directory must exist (D:\someFolder\) }
SeekableStream stream = new ByteArraySeekableStream(bytes);
import javax.media.jai.PlanarImage; import com.sun.media.jai.codec.ByteArraySeekableStream; import com.sun.media.jai.codec.ImageCodec; import com.sun.media.jai.codec.ImageDecoder; import com.sun.media.jai.codec.SeekableStream; import java.awt.Image; import java.awt.image.RenderedImage; ... static Image load(byte[] data) throws Exception{ Image image = null; SeekableStream stream = new ByteArraySeekableStream(data); String[] names = ImageCodec.getDecoderNames(stream); ImageDecoder dec = ImageCodec.createImageDecoder(names[0], stream, null); RenderedImage im = dec.decodeAsRenderedImage(); image = PlanarImage.wrapRenderedImage(im).getAsBufferedImage(); return image; }
SeekableStream stream = new ByteArraySeekableStream(image);
SeekableStream stream = new ByteArraySeekableStream(bytes);
SeekableStream stream = new ByteArraySeekableStream(tiffBytes); ImageDecoder decoder = ImageCodec.createImageDecoder("tiff", stream, null); RenderedImage tiffRenderedImage = decoder.decodeAsRenderedImage(0);
try { stream = new ByteArraySeekableStream(data); names = ImageCodec.getDecoderNames(stream);
public static RenderedImage convertToRenderedImage(byte[] data) throws IOException { RenderedImage im = null; SeekableStream stream = new ByteArraySeekableStream(data); String[] names = ImageCodec.getDecoderNames(stream); if (names.length > 0) { ImageDecoder dec = ImageCodec.createImageDecoder(names[0], stream, null); im = dec.decodeAsRenderedImage(); } if (im == null) { ByteArray ba = new ByteArray(data); int len = ba.getLength() < 24 ? ba.getLength() : 24; log.warn("Unable to find codec for data: " + ba.readPns(0, len)); } return im; // An alternate way. Need to see if works with tiff images // BufferedImage ioResult = null; // stream = new ByteArraySeekableStream(data); // { // ImageInputStream iis = ImageIO.createImageInputStream(stream); // ioResult = ImageIO.read(iis); // } // Raster ioRaster = ioResult.getData(); }
private static ImageInputStream writeToInputStream(Product product) throws IOException { final ByteArrayOutputStream byteStream = new ByteArrayOutputStream(); final ImageOutputStream outputStream = new MemoryCacheImageOutputStream(byteStream); final GeoTiffProductWriter writer = (GeoTiffProductWriter) new GeoTiffProductWriterPlugIn().createWriterInstance(); product.setProductWriter(writer); writer.writeGeoTIFFProduct(outputStream, product); final Band[] bands = product.getBands(); for (Band band : bands) { band.writeRasterDataFully(ProgressMonitor.NULL); } outputStream.flush(); return new MemoryCacheImageInputStream(new ByteArraySeekableStream(byteStream.toByteArray())); }
result = future.get(); RenderedImage image = JAI.create("stream", new ByteArraySeekableStream(result .getImage()));
private Product writeReadProduct() throws IOException { final GeoTiffProductWriter writer = (GeoTiffProductWriter) new GeoTiffProductWriterPlugIn().createWriterInstance(); outProduct.setProductWriter(writer); writer.writeGeoTIFFProduct(new MemoryCacheImageOutputStream(outputStream), outProduct); final Band[] bands = outProduct.getBands(); for (Band band : bands) { if (writer.shouldWrite(band)) { band.readRasterDataFully(ProgressMonitor.NULL); writer.writeBandRasterData(band, 0, 0, band.getSceneRasterWidth(), band.getSceneRasterHeight(), band.getData(), ProgressMonitor.NULL); } } writer.flush(); ByteArraySeekableStream inputStream = new ByteArraySeekableStream(outputStream.toByteArray()); final Product product = reader.readGeoTIFFProduct(new MemoryCacheImageInputStream(inputStream), location); product.setProductReader(reader); return product; }