Creates an array of color values. - Java 2D Graphics

Java examples for 2D Graphics:Color

Description

Creates an array of color values.

Demo Code

/*/*from   w ww.  j ava2 s .  c  o  m*/
 * Copyright (c) 2002 and later by MH Software-Entwicklung. All Rights Reserved.
 *  
 * JTattoo is multiple licensed. If your are an open source developer you can use
 * it under the terms and conditions of the GNU General Public License version 2.0
 * or later as published by the Free Software Foundation.
 *  
 * see: gpl-2.0.txt
 * 
 * If you pay for a license you will become a registered user who could use the
 * software under the terms and conditions of the GNU Lesser General Public License
 * version 2.0 or later with classpath exception as published by the Free Software
 * Foundation.
 * 
 * see: lgpl-2.0.txt
 * see: classpath-exception.txt
 * 
 * Registered users could also use JTattoo under the terms and conditions of the 
 * Apache License, Version 2.0 as published by the Apache Software Foundation.
 *  
 * see: APACHE-LICENSE-2.0.txt
 */
//package com.java2s;
import java.awt.Color;

public class Main {
    /**
     * Creates an array of color values. The colors created will be a gradient from color c1 to color c1 with a count 
     * of steps values.
     * 
     * @param c1 the starting color
     * @param c2 the ending color
     * @param steps the number of steps between c1 and c2 (the size of the created array)
     * 
     * @return the array of color values
     */
    public static Color[] createColorArr(Color c1, Color c2, int steps) {
        if (c1 == null || c2 == null) {
            return null;
        }

        Color colors[] = new Color[steps];
        double r = c1.getRed();
        double g = c1.getGreen();
        double b = c1.getBlue();
        double dr = ((double) c2.getRed() - r) / steps;
        double dg = ((double) c2.getGreen() - g) / steps;
        double db = ((double) c2.getBlue() - b) / steps;
        colors[0] = c1;
        for (int i = 1; i < steps - 1; i++) {
            r += dr;
            g += dg;
            b += db;
            colors[i] = createColor((int) r, (int) g, (int) b);
        }
        colors[steps - 1] = c2;
        return colors;
    }

    /**
     * Creates a color object.
     * 
     * @param r the Red component
     * @param g the Green component
     * @param b the Blue component
     * 
     * @return a color object
     */
    public static Color createColor(int r, int g, int b) {
        return new Color(((r & 0xFF) << 16) | ((g & 0xFF) << 8)
                | ((b & 0xFF)));
    }
}

Related Tutorials