private static ImageWriter getImageWriter() { final Iterator<ImageWriter> iterator = ImageIO.getImageWritersBySuffix("png"); for (final Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix("png"); it.hasNext();) { final ImageWriter imagewriter = iterator.next(); Log.debug("PngIOMetadata countImageWriter = " + it.next()); if (imagewriter.getClass().getName().equals("com.sun.imageio.plugins.png.PNGImageWriter")) { Log.debug("PngIOMetadata Found sun PNGImageWriter"); return imagewriter; } } Log.debug("Using first one"); return ImageIO.getImageWritersBySuffix("png").next(); }
/** * 根据给定的图片格式或者扩展名获取{@link ImageWriter},如果未找到合适的Writer,返回null * * @param formatName 图片格式或扩展名,例如"jpg"、"png" * @return {@link ImageWriter} * @since 4.3.2 */ public static ImageWriter getWriter(String formatName) { ImageWriter writer = null; Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(formatName); if (iter.hasNext()) { writer = iter.next(); } if (null == writer) { // 尝试扩展名获取 iter = ImageIO.getImageWritersBySuffix(formatName); if (iter.hasNext()) { writer = iter.next(); } } return writer; }
/** * 根据给定的图片格式或者扩展名获取{@link ImageWriter},如果未找到合适的Writer,返回null * * @param formatName 图片格式或扩展名,例如"jpg"、"png" * @return {@link ImageWriter} * @since 4.3.2 */ public static ImageWriter getWriter(String formatName) { ImageWriter writer = null; Iterator<ImageWriter> iter = ImageIO.getImageWritersByFormatName(formatName); if (iter.hasNext()) { writer = iter.next(); } if (null == writer) { // 尝试扩展名获取 iter = ImageIO.getImageWritersBySuffix(formatName); if (iter.hasNext()) { writer = iter.next(); } } return writer; }
ImageWriter writer = null; try { writer = ImageIO.getImageWritersBySuffix("jpg").next(); ImageWriteParam param = writer.getDefaultWriteParam(); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
private boolean hasWriterForSuffix(String pSuffix) { if (knownSuffixes.get(pSuffix) == Boolean.TRUE) { return true; } try { // Cahce lookup Iterator iterator = ImageIO.getImageWritersBySuffix(pSuffix); if (iterator.hasNext()) { knownSuffixes.put(pSuffix, Boolean.TRUE); return true; } else { knownSuffixes.put(pSuffix, Boolean.FALSE); return false; } } catch (IllegalArgumentException iae) { return false; } }
private static ImageWriter getJPEGImageWriter() throws IOException { ImageWriter writer = null; Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("jpeg"); while (writers.hasNext()) { if (writer != null) { writer.dispose(); } writer = writers.next(); if (writer == null) { continue; } // PDFBOX-3566: avoid CLibJPEGImageWriter, which is not a JPEGImageWriteParam if (writer.getDefaultWriteParam() instanceof JPEGImageWriteParam) { return writer; } } throw new IOException("No ImageWriter found for JPEG format"); }
/** * Writes the {@linkplain #image} to the specified file. This method differs from {@link * ImageIO#write(String,File)} in a number of ways: * * <p> * * <ul> * <li>The {@linkplain ImageWriter image writer} to use is inferred from the file extension. * <li>If the image writer accepts {@link File} objects as input, then the {@code file} * argument is given directly without creating an {@link ImageOutputStream} object. This * is important for some formats like HDF, which work <em>only</em> with files. * <li>If the {@linkplain #image} is not tiled, then it is tiled prior to be written. * <li>If some special processing is needed for a given format, then the corresponding method * is invoked. Example: {@link #forceIndexColorModelForGIF}. * </ul> * * @return this {@link ImageWorker}. */ public final ImageWorker write(final File output) throws IOException { final String filename = output.getName(); final int dot = filename.lastIndexOf('.'); if (dot < 0) { throw new IIOException(Errors.format(ErrorKeys.NO_IMAGE_WRITER)); } final String extension = filename.substring(dot + 1).trim(); write(output, ImageIO.getImageWritersBySuffix(extension)); return this; }
FileOutputStream out = new FileOutputStream(resizedFile)) { ImageWriter imageWriter = ImageIO.getImageWritersBySuffix("jpg").next(); ImageOutputStream ios = ImageIO.createImageOutputStream(out); imageWriter.setOutput(ios);
/** * for internal use only: uses required properties to instantiate. * @param file the image file * @param derivateID the derivate ID the image belongs to * @param relImagePath the relative path from the derivate root to the image */ protected MCRImage(final Path file, final String derivateID, final String relImagePath) { imageFile = file; derivate = derivateID; imagePath = relImagePath; imageWriter = ImageIO.getImageWritersBySuffix("jpeg").next(); }
private ImageWriter getImageWriter() { ImageWriter imageWriter = imageWriters.poll(); if (imageWriter == null) { imageWriter = ImageIO.getImageWritersBySuffix("png").next(); } return imageWriter; }
@Override public boolean canWrite( AbstractRaster raster, RasterIOOptions options ) { String format = options.get( RasterIOOptions.OPT_FORMAT ); if ( "geotiff".equalsIgnoreCase( format ) ) { format = "tiff"; } if ( ImageIO.getImageWritersBySuffix( format ).hasNext() ) { return true; } return false; }
private static ImageWriter getImageWriter() { final Iterator<ImageWriter> iterator = ImageIO.getImageWritersBySuffix("png"); for (final Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix("png"); it.hasNext();) { final ImageWriter imagewriter = iterator.next(); Log.debug("PngIOMetadata countImageWriter = " + it.next()); if (imagewriter.getClass().getName().equals("com.sun.imageio.plugins.png.PNGImageWriter")) { Log.debug("PngIOMetadata Found sun PNGImageWriter"); return imagewriter; } } Log.debug("Using first one"); return ImageIO.getImageWritersBySuffix("png").next(); }
private ImageWriter getWriter() throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if (!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } } }
/** * Returns the first available GIF ImageWriter using * ImageIO.getImageWritersBySuffix("gif"). * * @return a GIF ImageWriter object * @throws IIOException if no GIF image writers are returned */ private static ImageWriter getWriter() throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if(!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
/** * Returns the first available GIF ImageWriter using * ImageIO.getImageWritersBySuffix("gif"). * * @return a GIF ImageWriter object * @throws IIOException if no GIF image writers are returned */ private static ImageWriter getWriter() throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if (!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
/** * Returns the first available GIF ImageWriter using ImageIO.getImageWritersBySuffix("gif"). * * @param format * @return a GIF ImageWriter object * @throws IIOException if no GIF png writers are returned */ private static ImageWriter getWriter(@Nonnull String format) throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix(format); if (!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
/** * Returns the first available GIF ImageWriter using * ImageIO.getImageWritersBySuffix("gif"). * * @return a GIF ImageWriter object * @throws IIOException if no GIF image writers are returned */ private static ImageWriter getWriter() throws KlabException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if (!iter.hasNext()) { throw new KlabIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
/** * Returns the first available GIF ImageWriter using * ImageIO.getImageWritersBySuffix("gif"). * * @return a GIF ImageWriter object * @throws IIOException if no GIF image writers are returned */ private static ImageWriter getWriter() throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if (!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
/** * Returns the first available GIF ImageWriter using * ImageIO.getImageWritersBySuffix("gif"). * * @return a GIF ImageWriter object * @throws IIOException if no GIF image writers are returned */ private static ImageWriter getWriter() throws IIOException { Iterator<ImageWriter> iter = ImageIO.getImageWritersBySuffix("gif"); if (!iter.hasNext()) { throw new IIOException("No GIF Image Writers Exist"); } else { return iter.next(); } }
public static byte[] toJpg(BufferedImage image) throws IOException { // Start with a white layer to have images with an alpha layer handled correctly. BufferedImage newBufferedImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB); newBufferedImage.createGraphics().drawImage(image, 0, 0, Color.WHITE, null); // Manually get the ImageWriter to be able to adjust quality ImageWriter writer = ImageIO.getImageWritersBySuffix("jpg").next(); ImageWriteParam imageWriterParam = writer.getDefaultWriteParam(); imageWriterParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); imageWriterParam.setCompressionQuality(1f); ByteArrayOutputStream output = new ByteArrayOutputStream(); writer.setOutput(new MemoryCacheImageOutputStream(output)); writer.write(null, new IIOImage(newBufferedImage, null, null), imageWriterParam); writer.dispose(); return output.toByteArray(); }