/** * add an image to the animation * @param image the image * @param delayMillis the frame time of the image in milliseconds * @param transparencyColorIndex the index of the transparent color, -1 if not used * @throws IOException */ public void addImage(RenderedImage image, int delayMillis, int transparencyColorIndex) throws IOException { if (this.counter == 0) { iiom = writer.getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(image), iwp); writer.prepareWriteSequence(writer.getDefaultStreamMetadata(iwp)); } if (this.counter == 0 && loops >= 0) { IIOMetadata imageMetadata2 = writer.getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(image), iwp); try { setMetadata(imageMetadata2, delayMillis, transparencyColorIndex); setLoops(imageMetadata2, this.loops); writer.writeToSequence(new IIOImage(image, null, imageMetadata2), iwp); } catch (final IIOInvalidTreeException e) { throw new IOException(e.getMessage()); } } else try { setMetadata(iiom, delayMillis, transparencyColorIndex); writer.writeToSequence(new IIOImage(image, null, iiom), iwp); } catch (final IIOInvalidTreeException e) { throw new IOException(e.getMessage()); } this.counter++; }
@Override public void writeToSequence(final IIOImage image, final ImageWriteParam param) throws IOException { delegate.writeToSequence(image, param); }
for (int j = 0; j < reader.getNumImages(true); j++) { IIOImage image = reader.readAll(j, null); writer.writeToSequence(image, param);
for (int j = 0; j < reader.getNumImages(true); j++) { IIOImage image = reader.readAll(j, null); writer.writeToSequence(image, param);
@Test(expected = IllegalStateException.class) public void testWriteSequenceNotStarted() throws IOException { // ICNS only supports sizes in multiples of 2 (16, 32, 64, ..., 1024 + 48 and 96) ImageWriter writer = createImageWriter(); try (ImageOutputStream stream = ImageIO.createImageOutputStream(new ByteArrayOutputStream())) { writer.setOutput(stream); BufferedImage image = new BufferedImage(32, 32, BufferedImage.TYPE_INT_ARGB); writer.writeToSequence(new IIOImage(image, null, null), writer.getDefaultWriteParam()); } finally { writer.dispose(); } }
@Test public void testWriteSequence() throws IOException { ImageWriter writer = createImageWriter(); ByteArrayOutputStream output = new ByteArrayOutputStream(); try (ImageOutputStream stream = ImageIO.createImageOutputStream(output)) { writer.setOutput(stream); writer.prepareWriteSequence(null); for (RenderedImage image : getTestData()) { IIOImage iioImage = new IIOImage(image, null, null); writer.writeToSequence(iioImage, writer.getDefaultWriteParam()); } writer.endWriteSequence(); } finally { writer.dispose(); } } }
@Override public void writeToSequence(final IIOImage image, final ImageWriteParam param) throws IOException { delegate.writeToSequence(image, param); }
public void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence( new IIOImage( img, null, imageMetaData), imageWriteParam); }
public void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence( new IIOImage( img, null, imageMetaData), imageWriteParam); }
private void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence(new IIOImage(img, null, imageMetaData), imageWriteParam); }
/** * Method to add an image * * @param img the image * @throws IOException IOException */ public void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence( new IIOImage( img, null, imageMetaData), imageWriteParam); }
private void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence(new IIOImage(img, null, imageMetaData), imageWriteParam); }
public void writeToSequence(RenderedImage img) throws IOException { gifWriter.writeToSequence(new IIOImage(img, null, imageMetaData), imageWriteParam); }
/** * Write to sequence. * * @param img the img * @throws IOException the io exception */ public void writeToSequence(@Nonnull RenderedImage img) throws IOException { gifWriter.writeToSequence( new IIOImage( img, null, imageMetaData), imageWriteParam); }
/** * * @param img * @param frameDelay milliseconds * @throws IOException */ public void writeToSequence(RenderedImage img, int frameDelay) throws IOException { setSettings(frameDelay); gifWriter.writeToSequence( new IIOImage( img, null, imageMetaData), imageWriteParam); }
public void writeToSequence(RenderedImage img, int timeBetweenFramesMS) throws IOException { String metaFormatName = imageMetaData.getNativeMetadataFormatName(); IIOMetadataNode root = (IIOMetadataNode) imageMetaData.getAsTree(metaFormatName); IIOMetadataNode graphicsControlExtensionNode = getNode(root, "GraphicControlExtension"); graphicsControlExtensionNode.setAttribute("delayTime", Integer.toString(timeBetweenFramesMS / 10)); gifWriter.writeToSequence(new IIOImage(img, null, imageMetaData), imageWriteParam); }
File file = new File("gif1.gif"); ImageReader reader = ImageIO.getImageReadersBySuffix("GIF").next(); ImageInputStream in = ImageIO.createImageInputStream(file); reader.setInput(in); int numImages = reader.getNumImages(true); BufferedImage[] frames = new BufferedImage[pocetObrazku]; File fileOut = new File("k.gif"); fileOut.createNewFile(); ImageWriter iw = ImageIO.getImageWritersByFormatName("gif").next(); ImageOutputStream ios = ImageIO.createImageOutputStream(fileOut); iw.setOutput(ios); iw.prepareWriteSequence(null); for (int i = 0; i < numImages ; i++) { BufferedImage image = reader.read(i); frames[i] = reader.read(i); IIOMetadata metadata = reader.getImageMetadata(i); IIOImage ii = new IIOImage(image, null, metadata); iw.writeToSequence(ii, (ImageWriteParam) null); }
public byte[] createImage() throws Exception { ImageWriter iw = ImageIO.getImageWritersByFormatName("gif").next(); ByteArrayOutputStream os = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(os); iw.setOutput(ios); iw.prepareWriteSequence(null); int i = 0; for (AnimationFrame animationFrame : frameCollection) { BufferedImage src = animationFrame.getImage(); ImageWriteParam iwp = iw.getDefaultWriteParam(); IIOMetadata metadata = iw.getDefaultImageMetadata( new ImageTypeSpecifier(src), iwp); configure(metadata, "" + animationFrame.getDelay(), i); IIOImage ii = new IIOImage(src, null, metadata); iw.writeToSequence(ii, null); i++; } iw.endWriteSequence(); ios.close(); return os.toByteArray(); }
@Override public void write(RenderedImage image, T params) throws TaskIOException { TaskIOException.require(nonNull(getOutput()), "Cannot call write before opening the write destination"); try { if (!prepared) { writer.prepareWriteSequence(null); prepared = true; } writer.writeToSequence(new IIOImage(image, null, newImageMetadata(image, params, imageWriterParams)), imageWriterParams); } catch (IOException e) { throw new TaskIOException(e); } }
public void save(@Nonnull File file) throws IOException { try (OutputStream output = file.newOutputStream()) { ImageOutputStream imageOutput = ImageIO.createImageOutputStream(output); if (imageOutput == null) { throw new IOException("ImageIO::createImageOutputStream returned null"); } ImageWriter writer = ImageIO.getImageWritersByFormatName("gif").next(); int index = 0; writer.setOutput(imageOutput); writer.prepareWriteSequence(null); for (GifFrame frame : this) { BufferedImage image = frame.getImage().getImage(); ImageWriteParam writeParam = writer.getDefaultWriteParam(); IIOMetadata ioMetadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(image), writeParam); IIOImage ioImage = new IIOImage(image, null, ioMetadata); configureGIFFrame(ioMetadata, String.valueOf(frame.getDelay() / 10L), index++, frame.getDisposalMethod().getMethodName(), frame.getLoopCount()); writer.writeToSequence(ioImage, null); } writer.endWriteSequence(); } }