/** * 根据给定的Image对象和格式获取对应的{@link ImageWriter},如果未找到合适的Writer,返回null * * @param img {@link Image} * @param formatName 图片格式,例如"jpg"、"png" * @return {@link ImageWriter} * @since 4.3.2 */ public static ImageWriter getWriter(Image img, String formatName) { final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(toRenderedImage(img)); final Iterator<ImageWriter> iter = ImageIO.getImageWriters(type, formatName); return iter.hasNext() ? iter.next() : null; }
/** * 根据给定的Image对象和格式获取对应的{@link ImageWriter},如果未找到合适的Writer,返回null * * @param img {@link Image} * @param formatName 图片格式,例如"jpg"、"png" * @return {@link ImageWriter} * @since 4.3.2 */ public static ImageWriter getWriter(Image img, String formatName) { final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(toRenderedImage(img)); final Iterator<ImageWriter> iter = ImageIO.getImageWriters(type, formatName); return iter.hasNext() ? iter.next() : null; }
/** * 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++; }
public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { return Collections.singleton(ImageTypeSpecifier.createFromRenderedImage(rasterizer.createImage(1, 1))).iterator(); }
if (dpiX != 0 && dpiY != 0) { ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(oimage.getRenderedImage()); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, param);
ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(iioImage.getRenderedImage()); ImageWriteParam param = writer.getDefaultWriteParam(); IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, param);
createGeoTiffIIOMetadata( writer, ImageTypeSpecifier.createFromRenderedImage(image), geoTIFFMetadata, params);
.createBufferedImage(renderedImage.getWidth(), 1) .getRaster() : ImageTypeSpecifier.createFromRenderedImage(renderedImage) .createBufferedImage(renderedImage.getWidth(), 1) .getRaster();
ImageTypeSpecifier destinationType = overrideDestination ? param.getDestinationType() : ImageTypeSpecifier.createFromRenderedImage(renderedImage);
? convertImageMetadata(image.getMetadata(), ImageTypeSpecifier.createFromRenderedImage(renderedImage), param) : getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(renderedImage), param);
/** * Gets an image writer suitable to be used for GeoTIFF. * * @param image the image to be written later * @return a suitable image writer, or <code>null</code> if no writer is found */ public static ImageWriter getImageWriter(RenderedImage image) { return getImageWriter(ImageTypeSpecifier.createFromRenderedImage(image)); }
/** * Creates IIO image instance given image and GeoTIFF metadata. * * @param writer the image writer, must not be null * @param im the image, must not be null * @param geoTIFFMetadata the GeoTIFF metadata, must not be null * @return the IIO image, never null * @throws IIOException if the metadata cannot be created */ public static IIOImage createIIOImage(ImageWriter writer, RenderedImage im, GeoTIFFMetadata geoTIFFMetadata) throws IIOException { final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(im); return new IIOImage(im, null, createIIOMetadata(writer, type, geoTIFFMetadata)); }
public Iterator<ImageTypeSpecifier> getImageTypes(int imageIndex) throws IOException { return Collections.singleton(ImageTypeSpecifier.createFromRenderedImage(rasterizer.createImage(1, 1))).iterator(); }
/** * 根据给定的Image对象和格式获取对应的{@link ImageWriter},如果未找到合适的Writer,返回null * * @param img {@link Image} * @param formatName 图片格式,例如"jpg"、"png" * @return {@link ImageWriter} * @since 4.3.2 */ public static ImageWriter getWriter(Image img, String formatName) { final ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(toRenderedImage(img)); final Iterator<ImageWriter> iter = ImageIO.getImageWriters(type, formatName); return iter.hasNext() ? iter.next() : null; }
private static void writeToIOS(BufferedImage img, ImageOutputStream ios, String formatName, ProgressTracker pt) throws IOException { assert !EventQueue.isDispatchThread(); ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(img); Iterator<ImageWriter> writers = ImageIO.getImageWriters(type, formatName); if (!writers.hasNext()) { throw new IOException("No writer found for " + formatName); } ImageWriter writer = writers.next(); try { writer.setOutput(ios); writer.addIIOWriteProgressListener(new TrackerWriteProgressListener(pt)); writer.write(img); } finally { writer.dispose(); } }
ImageTypeSpecifier type = ImageTypeSpecifier.createFromRenderedImage(image); ImageWriter writer = getImageWriter(type); if (writer == null) {
if (dpiX != 0 && dpiY != 0) { ImageTypeSpecifier imageType = ImageTypeSpecifier.createFromRenderedImage(oimage.getRenderedImage()); IIOMetadata imageMetadata = writer.getDefaultImageMetadata(imageType, null); imageMetadata = setDPIViaAPI(imageMetadata, dpiX, dpiY);
type = iwParam.getDestinationType(); } else { type = ImageTypeSpecifier.createFromRenderedImage(image);
public void writeImage(RenderedImage image, ImageWriterParams params) throws IOException { if (iiowriter == null) { throw new IllegalStateException("MultiImageWriter already closed!"); } ImageWriteParam iwParam = getDefaultWriteParam(iiowriter, image, params); if (!prepared) { //Only prepare once IIOMetadata streamMetadata = createStreamMetadata(iiowriter, iwParam, params); iiowriter.prepareWriteSequence(streamMetadata); prepared = true; } ImageTypeSpecifier type; if (iwParam.getDestinationType() != null) { type = iwParam.getDestinationType(); } else { type = ImageTypeSpecifier.createFromRenderedImage(image); } //Handle metadata IIOMetadata meta = iiowriter.getDefaultImageMetadata( type, iwParam); //meta might be null for some JAI codecs as they don't support metadata if (params != null && meta != null) { meta = updateMetadata(image, meta, params); } //Write image IIOImage iioimg = new IIOImage(image, null, meta); iiowriter.writeToSequence(iioimg, iwParam); }
completeImageMetadata(streamMetadata, null); final IIOMetadata imageMetadata = writer.getDefaultImageMetadata(ImageTypeSpecifier.createFromRenderedImage(image), param); if (imageMetadata != null) { completeImageMetadata(imageMetadata, image);