Java JPEG jpeg2BufferedImage(final byte[] jpegImage, final boolean bw)

Here you can find the source of jpeg2BufferedImage(final byte[] jpegImage, final boolean bw)

Description

Convierte una imagen JPEG en una BufferedImage de AWT.

License

Apache License

Parameter

Parameter Description
jpegImage Imagen JPEG de origen.
bw Si se debe o no convertir la imagen a blanco y negro.

Exception

Parameter Description
IOException Si hay problemas en el tratamiento de la imagen.

Return

BufferedImage.

Declaration

public static BufferedImage jpeg2BufferedImage(final byte[] jpegImage,
        final boolean bw) throws IOException 

Method Source Code

//package com.java2s;
//License from project: Apache License 

import java.awt.Color;

import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;

import java.io.IOException;

import javax.imageio.ImageIO;

public class Main {
    /** Convierte una imagen JPEG en una <code>BufferedImage</code> de AWT.
     * @param jpegImage Imagen JPEG de origen.
     * @param bw Si se debe o no convertir la imagen a blanco y negro.
     * @return <code>BufferedImage</code>.
     * @throws IOException Si hay problemas en el tratamiento de la imagen. */
    public static BufferedImage jpeg2BufferedImage(final byte[] jpegImage,
            final boolean bw) throws IOException {
        final BufferedImage original = ImageIO
                .read(new ByteArrayInputStream(jpegImage));
        if (!bw) {
            return original;
        }//from  w ww  .j av  a 2 s. c o m
        final BufferedImage binarized = new BufferedImage(
                original.getWidth(), original.getHeight(),
                BufferedImage.TYPE_BYTE_BINARY);
        int newPixel;
        final int threshold = 230;
        for (int i = 0; i < original.getWidth(); i++) {
            for (int j = 0; j < original.getHeight(); j++) {
                final int alpha = new Color(original.getRGB(i, j))
                        .getAlpha();
                if (new Color(original.getRGB(i, j)).getRed() > threshold) {
                    newPixel = 255;
                } else {
                    newPixel = 0;
                }
                newPixel = colorToRGB(alpha, newPixel, newPixel, newPixel);
                binarized.setRGB(i, j, newPixel);
            }
        }
        return binarized;
    }

    private static int colorToRGB(final int alpha, final int red,
            final int green, final int blue) {
        int newPixel = 0;
        newPixel += alpha;
        newPixel = newPixel << 8;
        newPixel += red;
        newPixel = newPixel << 8;
        newPixel += green;
        newPixel = newPixel << 8;
        newPixel += blue;
        return newPixel;
    }
}

Related

  1. fixImageIOJpegBug(BufferedImage image)
  2. jpegFromImage(BufferedImage image)
  3. png2jpeg(File pngImage, File jpegFile)