List of usage examples for javax.imageio.stream ImageOutputStream close
void close() throws IOException;
From source file:Main.java
public static void main(String[] args) throws Exception { URL url = new URL("http://www.java2s.com/style/download.png"); BufferedImage bi = ImageIO.read(url); for (float q = 0.2f; q < .9f; q += .2f) { OutputStream outStream = new FileOutputStream(new File("c:/Java_Dev/Image-" + q + ".jpg")); ImageWriter imgWriter = ImageIO.getImageWritersByFormatName("jpg").next(); ImageOutputStream ioStream = ImageIO.createImageOutputStream(outStream); imgWriter.setOutput(ioStream);/* www . java 2 s .c o m*/ JPEGImageWriteParam jpegParams = new JPEGImageWriteParam(Locale.getDefault()); jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(q); imgWriter.write(null, new IIOImage(bi, null, null), jpegParams); ioStream.flush(); ioStream.close(); imgWriter.dispose(); } }
From source file:ImageUtil.java
/** * store BufferedImage to file// w ww. j a v a 2 s . c o m * @param image BufferedImage * @param outputFile output image file * @param quality quality of output image * @return true success, else fail */ public static boolean storeImage(BufferedImage image, File outputFile, float quality) { try { //reconstruct folder structure for image file output if (outputFile.getParentFile() != null && !outputFile.getParentFile().exists()) { outputFile.getParentFile().mkdirs(); } if (outputFile.exists()) { outputFile.delete(); } //get image file suffix String extName = "png"; //get registry ImageWriter for specified image suffix Iterator writers = ImageIO.getImageWritersByFormatName(extName); ImageWriter imageWriter = (ImageWriter) writers.next(); //set image output params ImageWriteParam params = new JPEGImageWriteParam(null); params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); params.setCompressionQuality(quality); params.setProgressiveMode(javax.imageio.ImageWriteParam.MODE_DISABLED); params.setDestinationType(new ImageTypeSpecifier(IndexColorModel.getRGBdefault(), IndexColorModel.getRGBdefault().createCompatibleSampleModel(16, 16))); //writer image to file ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(outputFile); imageWriter.setOutput(imageOutputStream); imageWriter.write(null, new IIOImage(image, null, null), params); imageOutputStream.close(); imageWriter.dispose(); return true; } catch (Exception e) { e.printStackTrace(); } return false; }
From source file:com.alibaba.simpleimage.util.ImageUtils.java
public static void closeQuietly(ImageOutputStream outStream) { if (outStream != null) { try {//from w ww. j a v a2 s. com outStream.close(); } catch (IOException ignore) { } } }
From source file:com.tomtom.speedtools.json.ImageSerializer.java
@Nonnull private static byte[] writeAsBytes(@Nonnull final Image v) throws IOException { assert v != null; /**/*from w w w. j av a 2 s .co m*/ * Create a PNG output stream. */ final String mimeType = "image/png"; try (ByteArrayOutputStream stream = new ByteArrayOutputStream()) { final Iterator<ImageWriter> it = ImageIO.getImageWritersByMIMEType(mimeType); if (it.hasNext()) { final ImageWriter w = it.next(); final ImageOutputStream os = ImageIO.createImageOutputStream(stream); w.setOutput(os); w.write(convertToBufferedImage(v)); os.close(); w.dispose(); } else { LOG.info("writeAsBytes: No encoder for MIME type " + mimeType); throw new IOException("No encoder for MIME type " + mimeType); } return stream.toByteArray(); } }
From source file:Main.java
private static void writeJpegCompressedImage(BufferedImage image, String outFile) throws IOException { float qualityFloat = 1f; ByteArrayOutputStream outStream = new ByteArrayOutputStream(); ImageWriter imgWriter = ImageIO.getImageWritersByFormatName("jpg").next(); ImageOutputStream ioStream = ImageIO.createImageOutputStream(outStream); imgWriter.setOutput(ioStream);//from w w w . j a v a 2s. c o m JPEGImageWriteParam jpegParams = new JPEGImageWriteParam(Locale.getDefault()); jpegParams.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); jpegParams.setCompressionQuality(qualityFloat); imgWriter.write(null, new IIOImage(image, null, null), jpegParams); ioStream.flush(); ioStream.close(); imgWriter.dispose(); OutputStream outputStream = new FileOutputStream(outFile); outStream.writeTo(outputStream); }
From source file:ImageUtilities.java
/** * Writes an image to an output stream as a JPEG file. The JPEG quality can * be specified in percent./*from w w w. j a v a 2 s .c o m*/ * * @param image * image to be written * @param stream * target stream * @param qualityPercent * JPEG quality in percent * * @throws IOException * if an I/O error occured * @throws IllegalArgumentException * if qualityPercent not between 0 and 100 */ public static void saveImageAsJPEG(BufferedImage image, OutputStream stream, int qualityPercent) throws IOException { if ((qualityPercent < 0) || (qualityPercent > 100)) { throw new IllegalArgumentException("Quality out of bounds!"); } float quality = qualityPercent / 100f; ImageWriter writer = null; Iterator iter = ImageIO.getImageWritersByFormatName("jpg"); if (iter.hasNext()) { writer = (ImageWriter) iter.next(); } ImageOutputStream ios = ImageIO.createImageOutputStream(stream); writer.setOutput(ios); ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault()); iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwparam.setCompressionQuality(quality); writer.write(null, new IIOImage(image, null, null), iwparam); ios.flush(); writer.dispose(); ios.close(); }
From source file:com.openkm.applet.Util.java
/** * Upload scanned document to OpenKM//from ww w. j a va2 s . co m * */ public static String createDocument(String token, String path, String fileName, String fileType, String url, List<BufferedImage> images) throws MalformedURLException, IOException { log.info("createDocument(" + token + ", " + path + ", " + fileName + ", " + fileType + ", " + url + ", " + images + ")"); File tmpDir = createTempDir(); File tmpFile = new File(tmpDir, fileName + "." + fileType); ImageOutputStream ios = ImageIO.createImageOutputStream(tmpFile); String response = ""; try { if ("pdf".equals(fileType)) { ImageUtils.writePdf(images, ios); } else if ("tif".equals(fileType)) { ImageUtils.writeTiff(images, ios); } else { if (!ImageIO.write(images.get(0), fileType, ios)) { throw new IOException("Not appropiated writer found!"); } } ios.flush(); ios.close(); if (token != null) { // Send image HttpClient client = new DefaultHttpClient(); MultipartEntity form = new MultipartEntity(); form.addPart("file", new FileBody(tmpFile)); form.addPart("path", new StringBody(path, Charset.forName("UTF-8"))); form.addPart("action", new StringBody("0")); // FancyFileUpload.ACTION_INSERT HttpPost post = new HttpPost(url + "/frontend/FileUpload;jsessionid=" + token); post.setHeader("Cookie", "jsessionid=" + token); post.setEntity(form); ResponseHandler<String> responseHandler = new BasicResponseHandler(); response = client.execute(post, responseHandler); } else { // Store in disk String home = System.getProperty("user.home"); File dst = new File(home, tmpFile.getName()); copyFile(tmpFile, dst); response = "Image copied to " + dst.getPath(); } } finally { FileUtils.deleteQuietly(tmpDir); } log.info("createDocument: " + response); return response; }
From source file:ImageUtils.java
/** * Compress and save an image to the disk. Currently this method only supports JPEG images. * //from www . ja v a2s.c o m * @param image The image to save * @param toFileName The filename to use * @param type The image type. Use <code>ImageUtils.IMAGE_JPEG</code> to save as JPEG images, * or <code>ImageUtils.IMAGE_PNG</code> to save as PNG. */ public static void saveCompressedImage(BufferedImage image, String toFileName, int type) { try { if (type == IMAGE_PNG) { throw new UnsupportedOperationException("PNG compression not implemented"); } Iterator iter = ImageIO.getImageWritersByFormatName("jpg"); ImageWriter writer; writer = (ImageWriter) iter.next(); ImageOutputStream ios = ImageIO.createImageOutputStream(new File(toFileName)); writer.setOutput(ios); ImageWriteParam iwparam = new JPEGImageWriteParam(Locale.getDefault()); iwparam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); iwparam.setCompressionQuality(0.7F); writer.write(null, new IIOImage(image, null, null), iwparam); ios.flush(); writer.dispose(); ios.close(); } catch (IOException e) { e.printStackTrace(); } }
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 a 2 s . c om * @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:ChartServlet.java
/** Draw a Graphical Chart in response to a user request */ public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("image/jpeg"); // Create an Image BufferedImage img = new BufferedImage(W, H, BufferedImage.TYPE_INT_RGB); // Get the Image's Graphics, and draw. Graphics2D g = img.createGraphics(); // In real life this would call some charting software... g.setColor(Color.white);/*from w w w. jav a2 s . c o m*/ g.fillRect(0, 0, W, H); g.setColor(Color.green); g.fillOval(100, 75, 50, 50); // Write the output OutputStream os = response.getOutputStream(); ImageOutputStream ios = ImageIO.createImageOutputStream(os); if (!ImageIO.write(img, "jpeg", ios)) { log("Boo hoo, failed to write JPEG"); } ios.close(); os.close(); }