Here you can find the source of jpeg2BufferedImage(final byte[] jpegImage, final boolean bw)
BufferedImage
de AWT.
Parameter | Description |
---|---|
jpegImage | Imagen JPEG de origen. |
bw | Si se debe o no convertir la imagen a blanco y negro. |
Parameter | Description |
---|---|
IOException | Si hay problemas en el tratamiento de la imagen. |
BufferedImage
.
public static BufferedImage jpeg2BufferedImage(final byte[] jpegImage, final boolean bw) throws IOException
//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; } }