List of usage examples for javax.imageio ImageIO getImageWritersBySuffix
public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
From source file:Main.java
static public void main(String args[]) throws Exception { FileInputStream fin = new FileInputStream("a.gif"); Iterator readers = ImageIO.getImageReadersBySuffix("GIF"); ImageReader imageReader = (ImageReader) readers.next(); ImageInputStream iis = ImageIO.createImageInputStream(fin); imageReader.setInput(iis, false);/*from ww w . ja v a 2s .co m*/ imageReader.addIIOReadProgressListener(new IIOReadProgressListener() { public void imageComplete(ImageReader source) { System.out.println("image complete " + source); } public void imageProgress(ImageReader source, float percentageDone) { System.out.println("image progress " + source + ": " + percentageDone + "%"); } public void imageStarted(ImageReader source, int imageIndex) { System.out.println("image #" + imageIndex + " started " + source); } public void readAborted(ImageReader source) { System.out.println("read aborted " + source); } public void sequenceComplete(ImageReader source) { System.out.println("sequence complete " + source); } public void sequenceStarted(ImageReader source, int minIndex) { System.out.println("sequence started " + source + ": " + minIndex); } public void thumbnailComplete(ImageReader source) { System.out.println("thumbnail complete " + source); } public void thumbnailProgress(ImageReader source, float percentageDone) { System.out.println("thumbnail started " + source + ": " + percentageDone + "%"); } public void thumbnailStarted(ImageReader source, int imageIndex, int thumbnailIndex) { System.out.println("thumbnail progress " + source + ", " + thumbnailIndex + " of " + imageIndex); } }); BufferedImage image = imageReader.read(0); Iterator imageWriters = ImageIO.getImageWritersBySuffix("JPG"); ImageWriter imageWriter = (ImageWriter) imageWriters.next(); File file = new File("b.JPG"); ImageOutputStream ios = ImageIO.createImageOutputStream(file); imageWriter.setOutput(ios); imageWriter.write(image); }
From source file:Main.java
public static boolean canWriteExtension(String fileExt) { Iterator iter = ImageIO.getImageWritersBySuffix(fileExt); return iter.hasNext(); }
From source file:ch.entwine.weblounge.preview.jai.JAIPreviewGenerator.java
/** * {@inheritDoc}/*from w ww .ja va 2s . c om*/ * * @see ch.entwine.weblounge.common.content.PreviewGenerator#supports(java.lang.String) */ public boolean supports(String format) { if (format == null) throw new IllegalArgumentException("Format cannot be null"); return ImageIO.getImageWritersBySuffix(format.toLowerCase()).hasNext(); }
From source file:com.actelion.research.orbit.imageAnalysis.utils.ImageUtils.java
/** * Stores BufferedImage as JPEG2000 encoded file. * * @param bi/* w w w . j a v a2 s . c o m*/ * @param filename * @param dEncRate * @param lossless * @throws IOException */ public static void storeBIAsJP2File(BufferedImage bi, String filename, double dEncRate, boolean lossless) throws IOException { if (hasJPEG2000FileTag(filename)) { IIOImage iioImage = new IIOImage(bi, null, null); ImageWriter jp2iw = ImageIO.getImageWritersBySuffix("jp2").next(); J2KImageWriteParam writeParam = (J2KImageWriteParam) jp2iw.getDefaultWriteParam(); // Indicates using the lossless scheme or not. It is equivalent to use reversible quantization and 5x3 integer wavelet filters. The default is true. writeParam.setLossless(lossless); if (lossless) writeParam.setFilter(J2KImageWriteParam.FILTER_53); // Specifies which wavelet filters to use for the specified tile-components. JPEG 2000 part I only supports w5x3 and w9x7 filters. else writeParam.setFilter(J2KImageWriteParam.FILTER_97); if (!lossless) { // The bitrate in bits-per-pixel for encoding. Should be set when lossy compression scheme is used. With the default value Double.MAX_VALUE, a lossless compression will be done. writeParam.setEncodingRate(dEncRate); // changes in compression rate are done in the following way // however JPEG2000 implementation seems not to support this <-- no differences visible // writeParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); // writeParam.setCompressionType(writeParam.getCompressionTypes()[0]); // writeParam.setCompressionQuality(1.0f); } ImageOutputStream ios = null; try { ios = new FileImageOutputStream(new File(filename)); jp2iw.setOutput(ios); jp2iw.write(null, iioImage, writeParam); jp2iw.dispose(); ios.flush(); } finally { if (ios != null) ios.close(); } } else System.err.println("please name your file as valid JPEG2000 file: ends with .jp2"); }
From source file:it.geosolutions.imageio.plugins.nitronitf.ImageIOUtils.java
/** * Returns an ImageWriter given the input file * //from w w w .j av a 2 s. co m * @param file * @return * @throws IOException */ public static ImageWriter getImageWriter(File file) throws IOException { String ext = FilenameUtils.getExtension(file.getName().toLowerCase()); ImageWriter writer = null; Iterator<ImageWriter> imageWriters = ImageIO.getImageWritersBySuffix(ext); if (imageWriters.hasNext()) { writer = imageWriters.next(); ImageOutputStream stream = ImageIO.createImageOutputStream(file); writer.setOutput(stream); } return writer; }
From source file:com.db.comserv.main.utilities.HttpCaller.java
public static String compress(String imageString, float quality) throws IOException { byte[] imageByte = Base64.decodeBase64(imageString); ByteArrayInputStream bis = new ByteArrayInputStream(imageByte); BufferedImage image = ImageIO.read(bis); bis.close();//from w ww . j ava2s . c o m // Get a ImageWriter for given extension format. Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("jpg"); if (!writers.hasNext()) throw new IllegalStateException("No writers found"); ImageWriter writer = (ImageWriter) writers.next(); // Create the ImageWriteParam to compress the image. ImageWriteParam param = writer.getDefaultWriteParam(); param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); param.setCompressionQuality(quality); // The output will be a ByteArrayOutputStream (in memory) ByteArrayOutputStream bos = new ByteArrayOutputStream(32768); ImageOutputStream ios = ImageIO.createImageOutputStream(bos); writer.setOutput(ios); writer.write(null, new IIOImage(image, null, null), param); ios.flush(); // otherwise the buffer size will be zero! byte[] encodedBytes = Base64.encodeBase64(bos.toByteArray()); return new String(encodedBytes); }
From source file:com.aimluck.eip.fileupload.util.FileuploadUtils.java
/** * ???????// ww w. j a v a 2 s. c om * * @param org_id * @param folderName * @param uid * @param fileBean * @param acceptExts * @param msgList * @return */ public static ShrinkImageSet getBytesShrinkFilebean(String org_id, String folderName, int uid, FileuploadLiteBean fileBean, String[] acceptExts, int width, int height, List<String> msgList, boolean isFixOrgImage) { byte[] result = null; byte[] fixResult = null; InputStream is = null; boolean fixed = false; try { String file_name = fileBean.getFileName(); String ext = ""; if (acceptExts != null && acceptExts.length > 0) { // ??? // ???? boolean isAccept = false; String tmpExt = null; int len = acceptExts.length; for (int i = 0; i < len; i++) { if (!acceptExts[i].startsWith(".")) { tmpExt = "." + acceptExts[i]; } if (file_name.toLowerCase().endsWith(tmpExt)) { isAccept = true; ext = tmpExt.replace(".", ""); ; break; } } if (!isAccept) { // ???????null ? return null; } } is = ALStorageService.getFile(FOLDER_TMP_FOR_ATTACHMENT_FILES, uid + ALStorageService.separator() + folderName, String.valueOf(fileBean.getFileId())); byte[] imageInBytes = IOUtils.toByteArray(is); ImageInformation readImageInformation = readImageInformation(new ByteArrayInputStream(imageInBytes)); BufferedImage bufferdImage = ImageIO.read(new ByteArrayInputStream(imageInBytes)); if (readImageInformation != null) { bufferdImage = transformImage(bufferdImage, getExifTransformation(readImageInformation), readImageInformation.orientation >= 5 ? bufferdImage.getHeight() : bufferdImage.getWidth(), readImageInformation.orientation >= 5 ? bufferdImage.getWidth() : bufferdImage.getHeight()); fixed = isFixOrgImage; } if (bufferdImage == null) { // ?bufferdImage???????????,null?. return null; } BufferedImage shrinkImage = FileuploadUtils.shrinkAndTrimImage(bufferdImage, width, height); Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("jpeg"); ImageWriter writer = writers.next(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(out); writer.setOutput(ios); writer.write(shrinkImage); result = out.toByteArray(); if (fixed) { Iterator<ImageWriter> writers2 = ImageIO.getImageWritersBySuffix(ext); ImageWriter writer2 = writers2.next(); ByteArrayOutputStream out2 = new ByteArrayOutputStream(); ImageOutputStream ios2 = ImageIO.createImageOutputStream(out2); writer2.setOutput(ios2); writer2.write(bufferdImage); fixResult = out2.toByteArray(); } } catch (Exception e) { logger.error("fileupload", e); result = null; } finally { try { if (is != null) { is.close(); } } catch (Exception e) { logger.error("fileupload", e); result = null; } } return new ShrinkImageSet(result, fixed ? fixResult : null); }
From source file:com.aimluck.eip.fileupload.util.FileuploadUtils.java
/** * ???????//from w ww .j a v a 2 s .c o m * * @param org_id * @param folderName * @param uid * @param fileBean * @param acceptExts * @param msgList * @return */ public static byte[] getBytesShrink(InputStream is, int width, int height, List<String> msgList) { byte[] result = null; try { BufferedImage orgImage = ImageIO.read(is); BufferedImage shrinkImage = FileuploadUtils.shrinkImage(orgImage, width, height); Iterator<ImageWriter> writers = ImageIO.getImageWritersBySuffix("png"); ImageWriter writer = writers.next(); ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(out); writer.setOutput(ios); writer.write(shrinkImage); result = out.toByteArray(); } catch (Exception e) { logger.error("fileupload", e); result = null; } finally { try { if (is != null) { is.close(); } } catch (Exception e) { logger.error("fileupload", e); result = null; } } return result; }
From source file:net.rptools.tokentool.AppActions.java
public static ImageWriter getImageWriterBySuffix(String suffix) throws IOException { Iterator writers = ImageIO.getImageWritersBySuffix(suffix); if (!writers.hasNext()) throw new IOException("woops, no writers for " + suffix); return (ImageWriter) writers.next(); }
From source file:org.asqatasun.crawler.util.CrawlUtils.java
/** * Get an image extension from the image url * @param imageUrl// www . j a v a2 s .c o m * @return */ public static String getImageExtension(String imageUrl) { String ext = imageUrl.substring(imageUrl.lastIndexOf('.') + 1); try { java.util.Iterator<ImageWriter> it = ImageIO.getImageWritersBySuffix(ext); if (it.next() != null) { return ext; } } catch (NoSuchElementException ex) { return DEFAULT_IMG_EXTENSION; } return DEFAULT_IMG_EXTENSION; }