Advertisement
raffaele181188

RGB vs HSV lightening

Dec 11th, 2012
209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.03 KB | None | 0 0
  1. package stackoverflow;
  2.  
  3. import java.awt.Color;
  4.  
  5. public class Colors {
  6.  
  7.     public static void main(String[] args) {   
  8.        
  9.         Color src = new Color(0x8302FA);
  10.         float factor = 1.1f;
  11.        
  12.         printColor(src.getRGB(), "given");
  13.         printColor(attemptHSV(src, factor), "HSV");
  14.         printColor(attemptRGB(src, factor), "RGB");
  15.        
  16.     }
  17.  
  18.    
  19.     public static int attemptHSV(Color src, float factor) {
  20.         float[] hsv = new float[3];
  21.         Color.RGBtoHSB(src.getRed(), src.getGreen(), src.getBlue(), hsv);
  22.         return Color.HSBtoRGB(hsv[0], hsv[1], cappedValue(factor * hsv[2]));
  23.     }
  24.    
  25.     public static int attemptRGB(Color src, float factor) {
  26.         factor /= 255.0f;
  27.         return new Color(cappedValue(src.getRed() * factor),
  28.                          cappedValue(src.getGreen() * factor),
  29.                          cappedValue(src.getBlue() * factor)).getRGB();
  30.     }
  31.    
  32.     public static void printColor(int color, String message) {
  33.         System.out.println(String.format("%X %s", color & 0x00FFFFFF, message));
  34.     }
  35.    
  36.     public static float cappedValue(float value) {
  37.         return Math.min(1.0f, value);
  38.     }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement