Java Color Distance colorDiff(int a, int b)

Here you can find the source of colorDiff(int a, int b)

Description

Calculates the difference between two colors.

License

Open Source License

Parameter

Parameter Description
a a parameter
b a parameter

Declaration

public static float colorDiff(int a, int b) 

Method Source Code

//package com.java2s;
/*// w  w w.  java  2s . c o  m
 * Copyright (C) 2013 dirbaio
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

public class Main {
    /**
     * Calculates the difference between two colors. Returns +INF if different
     * alpha.
     *
     * @param a
     * @param b
     * @return
     */
    public static float colorDiff(int a, int b) {
        int ar = a & 0xFF;
        int ag = (a >> 8) & 0xFF;
        int ab = (a >> 16) & 0xFF;
        int aa = (a >> 24) & 0xFF;
        int br = a & 0xFF;
        int bg = (a >> 8) & 0xFF;
        int bb = (a >> 16) & 0xFF;
        int ba = (a >> 24) & 0xFF;

        int dr = ar - br;
        int dg = ag - bg;
        int db = ab - bb;
        int da = aa - ba;

        if (da != 0)
            return Float.POSITIVE_INFINITY;
        else
            return dr * dr + dg * dg + db * db;
    }
}

Related

  1. colorDiffAlpha(int a, int b)
  2. colordiffsq(int rgb0, int rgb1)
  3. colorDistance(double r1, double g1, double b1, double r2, double g2, double b2)
  4. colorDistance(final double r1, final double g1, final double b1, final double r2, final double g2, final double b2)