Here you can find the source of mergeColors(Color a, float fa, Color b, float fb)
public static Color mergeColors(Color a, float fa, Color b, float fb)
//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 www . ja v a 2 s . c o m*/ * BSI Business Systems Integration AG - initial API and implementation ******************************************************************************/ import java.awt.Color; public class Main { /** * 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); } }