Java Image save(Image image, File file, String formatName)

Here you can find the source of save(Image image, File file, String formatName)

Description

save

License

Open Source License

Declaration

public static void save(Image image, File file, String formatName) throws Exception 

Method Source Code


//package com.java2s;
//License from project: Open Source License 

import javax.imageio.ImageIO;

import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;

import java.awt.image.PixelGrabber;
import java.io.*;

public class Main {
    public static void save(Image image, File file, String formatName) throws Exception {

        FileOutputStream os = new FileOutputStream(file);
        ImageIO.write(toBufferedImage(image), formatName, os);

    }/*from   w w  w.j  a  v a 2 s .co  m*/

    public static BufferedImage toBufferedImage(Image image) throws Exception {

        if (image instanceof BufferedImage) {
            return (BufferedImage) image;
        }

        image = new ImageIcon(image).getImage();

        boolean hasAlpha = hasAlpha(image);

        BufferedImage bimage = null;
        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();

        int transparency = Transparency.OPAQUE;

        if (hasAlpha) {

            transparency = Transparency.BITMASK;

        }

        GraphicsDevice gs = ge.getDefaultScreenDevice();
        GraphicsConfiguration gc = gs.getDefaultConfiguration();
        bimage = gc.createCompatibleImage(image.getWidth(null), image.getHeight(null), transparency);

        if (bimage == null) {

            int type = BufferedImage.TYPE_INT_RGB;

            if (hasAlpha) {

                type = BufferedImage.TYPE_INT_ARGB;

            }

            bimage = new BufferedImage(image.getWidth(null), image.getHeight(null), type);

        }

        Graphics g = bimage.createGraphics();
        g.drawImage(image, 0, 0, null);
        g.dispose();

        return bimage;
    }

    public static boolean hasAlpha(Image image) throws InterruptedException {

        if (image instanceof BufferedImage) {

            BufferedImage bi = (BufferedImage) image;
            return bi.getColorModel().hasAlpha();

        }

        PixelGrabber pg = new PixelGrabber(image, 0, 0, 1, 1, false);
        pg.grabPixels();

        ColorModel cm = pg.getColorModel();
        return cm.hasAlpha();

    }
}

Related

  1. paintToImage(Component comp)
  2. prepareImagePath(String html, URL url)
  3. removeImage(JLabel image)
  4. removeRedeye(Image im, final int x1, final int y1, final int x2, final int y2)
  5. renderComponentToImage(JComponent component)
  6. saveComponentAsImage(final String path, final Component target, final String format)
  7. SaveImageToFile(Image img, String filename, String outformat)
  8. scaleBarcodeMaxWidth(Image i, int width, int cropHeigth)
  9. setImage(Image im, JComponent c)