/*
Conversions between R-G-B and int
Author: Michael S. Branicky, 10/29/2006, 10/10/2007
*/

public class ColorFun { 
  // Converting R-G-B values into a single integer
  public static int RGBint (int R, int G, int B) {
    return (R*256*256+G*256+B);
  }

  // grab the R value from a single integer
  public static int getRFromRGB (int color) {
    return ((color & 0x00FF0000) >> 16);
  }
  
  // grab the G value from a single integer
  public static int getGFromRGB (int color) {
    return ((color & 0x0000FF00) >> 8);
  }

  // grab the B value from a single integer
  public static int getBFromRGB (int color) {
    return (color & 0x000000FF);
  }

  // test the methods
  public static void main (String args[]) {
    int goldenrod = RGBint(184,134,11);

    System.out.print(goldenrod+" = ");
    System.out.printf("%x = ", goldenrod);
    System.out.print(getRFromRGB(goldenrod)+", ");
    System.out.print(getGFromRGB(goldenrod)+", ");
    System.out.println(getBFromRGB(goldenrod));
    
    int thistle = RGBint(216, 191, 216);
    System.out.print(thistle+" = ");
    System.out.printf("%x = ", thistle);
    System.out.print(getRFromRGB(thistle)+", ");
    System.out.print(getGFromRGB(thistle)+", ");
    System.out.println(getBFromRGB(thistle));
  }
}
