Java RGB Color Convert To rgb2grayscaleA(int[] rgb)

Here you can find the source of rgb2grayscaleA(int[] rgb)

Description

rgbgrayscale A

License

Open Source License

Declaration

public static byte[] rgb2grayscaleA(int[] rgb) 

Method Source Code

//package com.java2s;
/**/*w w w . jav  a 2s  . c om*/
 * Copyright (c) 2014-2015 by Wen Yu.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Any modifications to this file must keep this entire header intact.
 *
 * Change History - most recent changes go on top of previous changes
 *
 * IMGUtils.java
 *
 * Who   Date       Description
 * ====  =========  ==============================================================
 * WY    03Feb2015  Added createThumbnail() to create a thumbnail from an image
 * WY    27Jan2015  Added createThumbnail8BIM() to wrap a BufferedImage to _8BIM
 * WY    22Jan2015  Factored out guessImageType(byte[])
 * WY    24Dec2014  Rename CMYK2RGB() to iccp2rgbRaster()
 * WY    17Dec2014  Bug fix for rgb2bilevelDither() to bypass transparent pixels
 * WY    03Dec2014  Bug fix for getRGB() to fall back to BufferedImage.getRGB()
 * WY    26Nov2014  Changed rgb2bilevel() to take into account transparency
 * WY    03Nov2014  Added CMYK2RGB() to convert CMYK raster to RGB raster
 * WY    22Sep2014  Added guessImageType() to auto detect image type
 * WY    13Aug2014  Added RGB2YCCK_Inverted() to support YCCK JPEG
 * WY    05May2014  Added getRGB() and getRGB2() to replace BufferedImage.getRGB()
 */

public class Main {
    public static byte[] rgb2grayscaleA(int[] rgb) {
        // We need to double the array length because of the alpha channel
        byte[] grayscale = new byte[rgb.length << 1];

        for (int i = 0, j = 0; i < rgb.length; i++) {
            grayscale[j++] = (byte) (((rgb[i] >> 16) & 0xff) * 0.2126 + ((rgb[i] >> 8) & 0xff) * 0.7152
                    + (rgb[i] & 0xff) * 0.0722);
            grayscale[j++] = (byte) ((rgb[i] >> 24) & 0xff);
        }

        return grayscale;
    }
}

Related

  1. rgb24FloatArray(float[] array, int rgb24)
  2. rgb2arr(final int color, final int[] argbarr)
  3. rgb2bilevel(int[] rgb)
  4. rgb2gray(int r, int g, int b)
  5. rgb2grayscale(int[] rgb, int imageWidth, int imageHeight)
  6. rgb2Hex(int rgb)
  7. rgb2hex(int[] rgb)
  8. rgb2hsl(int colour)
  9. RGB2HSL(int red, int green, int blue, float[] hslvals)