Java Color Darker darker(Color color, float ratio)

Here you can find the source of darker(Color color, float ratio)

Description

Make a color darker.

License

Open Source License

Parameter

Parameter Description
color Color to mix with black.
ratio Black ratio (1.0 = complete black, 0.0 = color).

Return

Darker color.

Declaration

public static Color darker(Color color, float ratio) 

Method Source Code

//package com.java2s;
/*******************************************************************************
 * Copyright (c) 2010 BSI Business Systems Integration AG.
 * 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
 *
 * Contributors:/*from   w  ww. j a v a 2 s .  com*/
 *     BSI Business Systems Integration AG - initial API and implementation
 ******************************************************************************/

import java.awt.Color;

public class Main {
    /**
     * Make a color darker.
     * 
     * @param color
     *          Color to mix with black.
     * @param ratio
     *          Black ratio (1.0 = complete black, 0.0 = color).
     * @return Darker color.
     */
    public static Color darker(Color color, float ratio) {
        return mergeColors(Color.BLACK, ratio, color, 1 - ratio);
    }

    /**
     * Merges two colors. The two floating point arguments specify "how much" of the corresponding color is added to the
     * resulting color. Both arguments should (but don't have to) add to <code>1.0</code>.
     * <p>
     * This method is null-safe. If one of the given colors is <code>null</code>, the other color is returned (unchanged).
     */
    public static Color mergeColors(Color a, float fa, Color b, float fb) {
        if (a == null) {
            return b;
        }
        if (b == null) {
            return a;
        }
        return new Color((fa * a.getRed() + fb * b.getRed()) / (fa + fb) / 255f,
                (fa * a.getGreen() + fb * b.getGreen()) / (fa + fb) / 255f,
                (fa * a.getBlue() + fb * b.getBlue()) / (fa + fb) / 255f);
    }
}

Related

  1. darker(Color color)
  2. darker(Color color)
  3. darker(Color color, double factor)
  4. darker(Color color, double fraction)
  5. darker(Color color, float fraction)
  6. darker(final Color color, final int rgbOffset)
  7. darker(final Color color, float factor)
  8. darker(int channel, int intensity)
  9. darkerColor(Color c)