Java Image to Byte Array toByteArray(Image image)

Here you can find the source of toByteArray(Image image)

Description

to Byte Array

License

Open Source License

Declaration

public static byte[] toByteArray(Image image) 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 byte[] toByteArray(Image image) throws Exception {

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        ImageIO.write(toBufferedImage(image), "jpg", bos);
        return bos.toByteArray();

    }//from   www  .ja  v a2s . c o 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. bufferedImageToByte(BufferedImage originalImage)
  2. bufferedImageToByteArray(BufferedImage bufferedImage)
  3. bufferedImageToByteArray(BufferedImage image)
  4. bufferedImageToByteArray(BufferedImage img)
  5. bufferedImageToBytes(final BufferedImage bufferedImage, final ImageWriter imageWriter, final ImageWriteParam imageWriteParameter)
  6. toByteArray(Image img)