Package javax.imageio

Examples of javax.imageio.ImageWriter


  public byte[] compression(byte[] imageBytes, int toWidth, int toHeight) {
    ByteArrayInputStream is = new ByteArrayInputStream(imageBytes);

    BufferedImage src = null;
    ByteArrayOutputStream out = null;
    ImageWriter imgWrier;

    imgWrier = ImageIO.getImageWritersByFormatName("jpg").next();

    try {
      src = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB);
      src.getGraphics().drawImage(ImageIO.read(is), 0, 0, toWidth, toHeight, null);
      out = new ByteArrayOutputStream(imageBytes.length);

      imgWrier.reset();
      imgWrier.setOutput(ImageIO.createImageOutputStream(out));
      imgWrier.write(null, new IIOImage(src, null, null), null);
      imageBytes = out.toByteArray();
      out.flush();
      out.close();
      is.close();
    } catch (Exception e) {
View Full Code Here


    ByteArrayInputStream is = new ByteArrayInputStream(imageBytes);
    ByteArrayInputStream is_scale = new ByteArrayInputStream(imageBytes);

    BufferedImage src = null;
    ByteArrayOutputStream out = null;
    ImageWriter imgWrier;

    imgWrier = ImageIO.getImageWritersByFormatName("jpg").next();

    try {
      src = ImageIO.read(is_scale);
      Double scale = (double) toWidth / (double) src.getWidth();
      int toHeight = (int) (src.getHeight() * scale);

      src = new BufferedImage(toWidth, toHeight, BufferedImage.TYPE_INT_RGB);
      src.getGraphics().drawImage(ImageIO.read(is), 0, 0, toWidth, toHeight, null);
      out = new ByteArrayOutputStream(imageBytes.length);

      imgWrier.reset();
      imgWrier.setOutput(ImageIO.createImageOutputStream(out));
      imgWrier.write(null, new IIOImage(src, null, null), null);
      imageBytes = out.toByteArray();
      out.flush();
      out.close();
      is.close();
    } catch (Exception e) {
View Full Code Here

    return FileUtil.fileToString(new File(u), separador);
  }

  public static void pegaImagemByURL(String u, File d) throws IOException
  {
    ImageWriter iw = ImageIO.getImageWritersByFormatName("jpeg").next();
    iw.setOutput(new FileImageOutputStream(d));

    ImageWriteParam iwParam = iw.getDefaultWriteParam();
    iwParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
    iwParam.setCompressionQuality(0.9f);

    RenderedImage ri = ImageIO.read(new URL(u));

    iw.write(null, new IIOImage(ri, null, null), iwParam);
  }
View Full Code Here

     * @param filename the file to write to
     * @exception JimiException if an error prevents image encoding
     */
    public void saveImage(String mimeType, Image image, OutputStream os)
            throws Exception {
        ImageWriter writer = null;
        Iterator iter = javax.imageio.ImageIO.getImageWritersByMIMEType(mimeType);
        if (iter.hasNext()) {
            writer = (ImageWriter) iter.next();
        }
        writer.setOutput(os);
        BufferedImage rendImage = null;
        if (image instanceof BufferedImage) {
            rendImage = (BufferedImage) image;
        } else {
            MediaTracker tracker = new MediaTracker(this);
            tracker.addImage(image, 0);
            tracker.waitForAll();
            rendImage = new BufferedImage(image.getWidth(null), image.getHeight(null), 1);
            Graphics g = rendImage.createGraphics();
            g.drawImage(image, 0, 0, null);
        }
        writer.write(new IIOImage(rendImage, null, null));
        writer.dispose();
    }
View Full Code Here

                // peeves in JAXB RI as well, so if you fix this, submit the
                // code to the JAXB RI as well (see RuntimeBuiltinLeafInfoImpl)! - DD
                ByteArrayOutputStream bos = new ByteArrayOutputStream(2048);
                Iterator<ImageWriter> writers = ImageIO.getImageWritersByMIMEType(ct);
                if (writers.hasNext()) {
                    ImageWriter writer = writers.next();
                   
                    try {
                        BufferedImage bimg = convertToBufferedImage((Image) o);
                        ImageOutputStream out = ImageIO.createImageOutputStream(bos);
                        writer.setOutput(out);
                        writer.write(bimg);
                        writer.dispose();
                        out.flush();
                        out.close();
                        bos.close();
                    } catch (IOException e) {
                        throw new Fault(e);
View Full Code Here

    }
   
    private byte[] convertImagetoBytes(Image image) throws Exception {
        ByteArrayOutputStream imageBytes = new ByteArrayOutputStream();
        Iterator iterator = ImageIO.getImageWritersByMIMEType("image/jpeg");
        ImageWriter imageWriter = (ImageWriter) iterator.next();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
        imageWriter.setOutput(ios);
        imageWriter.write(new IIOImage((BufferedImage)image, null, null));
        ios.flush();
        imageWriter.dispose();
        return baos.toByteArray();
    }
View Full Code Here

    public void writeTo(Object obj, String mimeType, OutputStream os) throws IOException {
        Iterator i = ImageIO.getImageWritersByMIMEType(mimeType);
        if (!i.hasNext()) {
            throw new UnsupportedDataTypeException();
        }
        ImageWriter writer = (ImageWriter) i.next();
        writer.setOutput(os);

        if (obj instanceof RenderedImage) {
            writer.write((RenderedImage) obj);
        } else if (obj instanceof BufferedImage) {
            BufferedImage buffered = (BufferedImage) obj;
            writer.write(new IIOImage(buffered.getRaster(), null, null));
        } else if (obj instanceof Image) {
            Image image = (Image) obj;
            BufferedImage buffered = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
            Graphics2D graphics = buffered.createGraphics();
            graphics.drawImage(image, 0, 0, null, null);
            writer.write(new IIOImage(buffered.getRaster(), null, null));
        } else {
            throw new UnsupportedDataTypeException();
        }
        os.flush();
    }
View Full Code Here

            }
      //get image file suffix
      String extName = FileUtil.getExtName(outputFile);
      //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;
View Full Code Here

     */
    public static boolean writeImage(BufferedImage image, String formatName, OutputStream output,
            int dpi, float quality) throws IOException
    {
        ImageOutputStream imageOutput = null;
        ImageWriter writer = null;
        try
        {
            // find suitable image writer
            Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName(formatName);
            ImageWriteParam param = null;
            IIOMetadata metadata = null;
            // Loop until we get the best driver, i.e. one that supports
            // setting dpi in the standard metadata format; however we'd also
            // accept a driver that can't, if a better one can't be found
            while (writers.hasNext())
            {
                if (writer != null)
                {
                    writer.dispose();
                }
                writer = writers.next();
                param = writer.getDefaultWriteParam();
                metadata = writer.getDefaultImageMetadata(new ImageTypeSpecifier(image), param);
                if (metadata != null
                        && !metadata.isReadOnly()
                        && metadata.isStandardMetadataFormatSupported())
                {
                    break;
                }
            }
            if (writer == null)
            {
                LOG.error("No ImageWriter found for '" + formatName + "' format");
                StringBuilder sb = new StringBuilder();
                String[] writerFormatNames = ImageIO.getWriterFormatNames();
                for (String fmt : writerFormatNames)
                {
                    sb.append(fmt);
                    sb.append(' ');
                }
                LOG.error("Supported formats: " + sb);
                return false;
            }

            // compression
            if (param != null && param.canWriteCompressed())
            {
                param.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
                if (formatName.toLowerCase().startsWith("tif"))
                {
                    // TIFF compression
                    TIFFUtil.setCompressionType(param, image);
                }
                else
                {
                    param.setCompressionType(param.getCompressionTypes()[0]);
                    param.setCompressionQuality(quality);
                }
            }

            if (formatName.toLowerCase().startsWith("tif"))
            {
                // TIFF metadata
                TIFFUtil.updateMetadata(metadata, image, dpi);
            }
            else if ("jpeg".equals(formatName.toLowerCase())
                    || "jpg".equals(formatName.toLowerCase()))
            {
                // This segment must be run before other meta operations,
                // or else "IIOInvalidTreeException: Invalid node: app0JFIF"
                // The other (general) "meta" methods may not be used, because
                // this will break the reading of the meta data in tests
                JPEGUtil.updateMetadata(metadata, dpi);
            }
            else
            {
                // write metadata is possible
                if (metadata != null
                        && !metadata.isReadOnly()
                        && metadata.isStandardMetadataFormatSupported())
                {
                    setDPI(metadata, dpi, formatName);
                }
            }

            // write
            imageOutput = ImageIO.createImageOutputStream(output);
            writer.setOutput(imageOutput);
            writer.write(null, new IIOImage(image, null, metadata), param);
        }
        finally
        {
            if (writer != null)
            {
                writer.dispose();
            }
            if (imageOutput != null)
            {
                imageOutput.close();
            }
View Full Code Here

    private static void encodeImageToJPEGStream(BufferedImage image, float quality, int dpi,
                                                OutputStream out) throws IOException
    {
        // encode to JPEG
        ImageOutputStream ios = null;
        ImageWriter imageWriter = null;
        try
        {
            // find JAI writer
            imageWriter = ImageIO.getImageWritersBySuffix("jpeg").next();
            ios = ImageIO.createImageOutputStream(out);
            imageWriter.setOutput(ios);

            // add compression
            JPEGImageWriteParam jpegParam = (JPEGImageWriteParam)imageWriter.getDefaultWriteParam();
            jpegParam.setCompressionMode(JPEGImageWriteParam.MODE_EXPLICIT);
            jpegParam.setCompressionQuality(quality);

            // add metadata
            ImageTypeSpecifier imageTypeSpecifier = new ImageTypeSpecifier(image);
            IIOMetadata data = imageWriter.getDefaultImageMetadata(imageTypeSpecifier, jpegParam);
            Element tree = (Element)data.getAsTree("javax_imageio_jpeg_image_1.0");
            Element jfif = (Element)tree.getElementsByTagName("app0JFIF").item(0);
            jfif.setAttribute("Xdensity", Integer.toString(dpi));
            jfif.setAttribute("Ydensity", Integer.toString(dpi));
            jfif.setAttribute("resUnits", "1"); // 1 = dots/inch

            // write
            imageWriter.write(data, new IIOImage(image, null, null), jpegParam);
        }
        finally
        {
            // clean up
            IOUtils.closeQuietly(out);
            if (ios != null)
            {
                ios.close();
            }
            if (imageWriter != null)
            {
                imageWriter.dispose();
            }
        }
    }
View Full Code Here

TOP

Related Classes of javax.imageio.ImageWriter

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.