/** * produce the gif image as byte array * @return the gif image */ public byte[] get() { if (ios != null) try { ios.close(); ios = null; } catch (final IOException e) {} if (writer != null) { writer.dispose(); writer = null; } return baos.toByteArray(); }
public static void main(String[] args) throws Exception { if (args.length > 1) { // grab the output image type from the first image in the sequence BufferedImage firstImage = ImageIO.read(new File(args[0])); // create a new BufferedOutputStream with the last argument ImageOutputStream output = new FileImageOutputStream(new File(args[args.length - 1])); // create a gif sequence with the type of the first image, 1 second // between frames, which loops continuously GifSequenceWriter writer = new GifSequenceWriter(output, firstImage.getType(), 1, false); // write out the first image to our sequence... writer.writeToSequence(firstImage); for(int i=1; i<args.length-1; i++) { BufferedImage nextImage = ImageIO.read(new File(args[i])); writer.writeToSequence(nextImage); } writer.close(); output.close(); } else { System.out.println( "Usage: java GifSequenceWriter [list of gif files] [output file]"); } }
imageOutputStream.close();
public byte[] writeImageToBytes(Image image, float quality) throws Exception { BufferedImage bi; if (image instanceof BufferedImage && ((BufferedImage) image).getType() == BufferedImage.TYPE_INT_RGB) { bi = (BufferedImage) image; } else { bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.drawImage(image, 0, 0, width, height, null); } ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageWriter imgWrtr = ImageIO.getImageWritersByFormatName("jpg").next(); ImageOutputStream imgOutStrm = ImageIO.createImageOutputStream(baos); imgWrtr.setOutput(imgOutStrm); ImageWriteParam jpgWrtPrm = imgWrtr.getDefaultWriteParam(); jpgWrtPrm.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpgWrtPrm.setCompressionQuality(quality); imgWrtr.write(null, new IIOImage(bi, null, null), jpgWrtPrm); imgOutStrm.close(); return baos.toByteArray(); } }
@Override public void writeImageFile(OutputStream outStream, String format, ByteBuffer imageData, int width, int height) throws IOException { BufferedImage awtImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR); Screenshots.convertScreenShot2(imageData.asIntBuffer(), awtImage); ImageWriter writer = ImageIO.getImageWritersByFormatName(format).next(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); if (format.equals("jpg")) { JPEGImageWriteParam jpegParam = (JPEGImageWriteParam) writeParam; jpegParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParam.setCompressionQuality(0.95f); } awtImage = verticalFlip(awtImage); ImageOutputStream imgOut = new MemoryCacheImageOutputStream(outStream); writer.setOutput(imgOut); IIOImage outputImage = new IIOImage(awtImage, null, null); try { writer.write(null, outputImage, writeParam); } finally { imgOut.close(); writer.dispose(); } }
imageOutputStream.close();
imageOutputStream.close();
writer.write((IIOMetadata) null, new IIOImage(im, null, null), param); os.flush(); os.close();
if (ios != null) { try { ios.close(); } catch (Exception ignored) {
if (ios != null) { try { ios.close(); } catch (Exception ignored) {
w.setOutput(os); w.write(convertToBufferedImage(v)); os.close(); w.dispose(); } else {
writer.setOutput(stream); writer.write(metadata, new IIOImage(buffImg, null, metadata), writeParam); stream.close();
writer.write(metadata, new IIOImage(gridImage, null, metadata), writeParam); } finally { stream.close();
ios.close(); fos.close();
public static void main(String[] pArgs) throws IOException { System.out.print("Reading image.. "); BufferedImage image = ImageIO.read(new File(pArgs[0])); System.out.println("image read"); System.out.println("image: " + image); ImageWriter writer = new PICTImageWriter(null); ImageOutputStream stream = ImageIO.createImageOutputStream(new File(pArgs[1])); writer.setOutput(stream); writer.write(image); stream.close(); } }
/** Releases resources held by this {@link AbstractGridCoverageWriter}. */ public void dispose() { if (LOGGER.isLoggable(Level.FINE)) LOGGER.fine("Disposing writer:" + destination); if (outStream != null) { try { outStream.flush(); } catch (IOException e) { } finally { try { outStream.close(); } catch (Throwable e) { } } } }
@Test public void testMergeWithSubIFD() throws IOException { String testFile = "/tiff/cmyk_jpeg.tif"; File output = File.createTempFile("imageiotest", ".tif"); ImageOutputStream outputStream = ImageIO.createImageOutputStream(output); InputStream inputStream1 = getClassLoaderResource(testFile).openStream(); ImageInputStream imageInput1 = ImageIO.createImageInputStream(inputStream1); InputStream inputStream2 = getClassLoaderResource(testFile).openStream(); ImageInputStream imageInput2 = ImageIO.createImageInputStream(inputStream2); ArrayList<TIFFUtilities.TIFFPage> pages = new ArrayList<>(); pages.addAll(TIFFUtilities.getPages(imageInput1)); pages.addAll(TIFFUtilities.getPages(imageInput2)); TIFFUtilities.writePages(outputStream, pages); ImageInputStream testOutput = ImageIO.createImageInputStream(output); ImageReader reader = ImageIO.getImageReaders(testOutput).next(); reader.setInput(testOutput); int numImages = reader.getNumImages(true); for (int i = 0; i < numImages; i++) { reader.read(i); } imageInput1.close(); imageInput2.close(); outputStream.close(); }
@Test public void testReadWriteRead() throws IOException { Directory original = createReader().read(getDataAsIIS()); ByteArrayOutputStream output = new FastByteArrayOutputStream(256); ImageOutputStream imageOutput = ImageIO.createImageOutputStream(output); try { createWriter().write(original, imageOutput); } finally { imageOutput.close(); } Directory read = createReader().read(new ByteArrayImageInputStream(output.toByteArray())); assertEquals(original, read); }