Returns the color without alpha channel. - Java 2D Graphics

Java examples for 2D Graphics:Color Alpha

Description

Returns the color without alpha channel.

Demo Code


//package com.java2s;

public class Main {
    public static void main(String[] argv) throws Exception {
        String argb = "java2s.com";
        System.out.println(getColorWithoutAlpha(argb));
    }/* w  w  w  . java 2s.  c  o m*/

    /**
     * Returns the color without alpha channel.
     *
     * @param argb Color in HEX format (either with or without alpha, e.g.
     *             #CCCCCC or #ffCCCCCC.
     * @return
     */
    public static String getColorWithoutAlpha(String argb) {
        int[] components = getARGBComponents(argb);
        return "#" + getTwoDigitHexString(components[1])
                + getTwoDigitHexString(components[2])
                + getTwoDigitHexString(components[3]);
    }

    /**
     * Return ARGB values in int array
     * @param argb Color in HEX format (either with or without alpha, e.g.
     *             #CCCCCC or #ffCCCCCC.
     * @return
     */
    private static int[] getARGBComponents(String argb) {

        if (argb.startsWith("#")) {
            argb = argb.replace("#", "");
        }

        int alpha = -1, red = -1, green = -1, blue = -1;

        if (argb.length() == 8) {
            alpha = Integer.parseInt(argb.substring(0, 2), 16);
            red = Integer.parseInt(argb.substring(2, 4), 16);
            green = Integer.parseInt(argb.substring(4, 6), 16);
            blue = Integer.parseInt(argb.substring(6, 8), 16);
        } else if (argb.length() == 6) {
            alpha = 255;
            red = Integer.parseInt(argb.substring(0, 2), 16);
            green = Integer.parseInt(argb.substring(2, 4), 16);
            blue = Integer.parseInt(argb.substring(4, 6), 16);
        }

        int[] components = { alpha, red, green, blue };

        return components;

    }

    private static String getTwoDigitHexString(int integer) {

        StringBuilder sb = new StringBuilder();
        sb.append(Integer.toHexString(integer));
        if (sb.length() < 2) {
            sb.insert(0, '0'); // pad with leading zero if needed
        }

        return sb.toString();

    }
}

Related Tutorials