1 package com.bitwig.extension.api;
10 private Color(
final double red,
final double green,
final double blue,
final double alpha)
18 public static Color fromRGB(
double red,
double green,
double blue)
20 return new Color(red, green, blue, 1);
23 public static Color fromRGBA(
double red,
double green,
double blue,
double alpha)
25 return new Color(red, green, blue, alpha);
28 public static Color fromRGB255(
final int red,
final int green,
final int blue)
30 return new Color(red / 255.0, green / 255.0, blue / 255.0, 1);
33 public static Color fromRGBA255(
final int red,
final int green,
final int blue,
final int alpha)
35 return new Color(red / 255.0, green / 255.0, blue / 255.0, alpha / 255.0);
38 public static Color fromHex(String hex)
44 if (hex.charAt(0) ==
'#')
45 hex = hex.substring(1);
48 for (
int i = 0; i < hex.length(); ++i)
50 char c = hex.charAt(i);
51 if ((
'0' <= c && c <=
'9') ||
52 (
'a' <= c && c <=
'f') ||
53 (
'A' <= c && c <=
'F'))
63 int r = Integer.parseInt(hex.substring(0, 1), 16);
64 int g = Integer.parseInt(hex.substring(1, 2), 16);
65 int b = Integer.parseInt(hex.substring(2, 3), 16);
66 return fromRGB(r / 15.0, g / 15.0, b / 15.0);
71 int r = Integer.parseInt(hex.substring(0, 1), 16);
72 int g = Integer.parseInt(hex.substring(1, 2), 16);
73 int b = Integer.parseInt(hex.substring(2, 3), 16);
74 int a = Integer.parseInt(hex.substring(2, 3), 16);
75 return fromRGBA(r / 15.0, g / 15.0, b / 15.0, a / 15.0);
80 int r = Integer.parseInt(hex.substring(0, 2), 16);
81 int g = Integer.parseInt(hex.substring(2, 4), 16);
82 int b = Integer.parseInt(hex.substring(4, 6), 16);
83 return fromRGB255(r, g, b);
88 int r = Integer.parseInt(hex.substring(0, 2), 16);
89 int g = Integer.parseInt(hex.substring(2, 4), 16);
90 int b = Integer.parseInt(hex.substring(4, 6), 16);
91 int a = Integer.parseInt(hex.substring(6, 8), 16);
92 return fromRGBA255(r, g, b, a);
105 final double b1 = blend;
106 final double b2 = 1 - blend;
109 c1.getRed() * b1 + c2.getRed() * b2,
110 c1.getGreen() * b1 + c2.getGreen() * b2,
111 c1.getBlue() * b1 + c2.getBlue() * b2,
112 c1.getAlpha() * b1 + c2.getAlpha() * b2);
115 public static Color nullColor()
117 return fromRGBA(0, 0, 0, 0);
119 public static Color blackColor()
121 return fromRGBA(0, 0, 0, 1);
123 public static Color whiteColor()
125 return fromRGBA(1, 1, 1, 1);
128 public double getRed() {
return mRed; }
129 public double getGreen() {
return mGreen; }
130 public double getBlue() {
return mBlue; }
131 public double getAlpha() {
return mAlpha; }
133 public int getRed255() {
return (
int) (mRed * 255); }
134 public int getGreen255() {
return (
int) (mGreen * 255); }
135 public int getBlue255() {
return (
int) (mBlue * 255); }
136 public int getAlpha255() {
return (
int) (mAlpha * 255); }
138 private final double mRed;
139 private final double mGreen;
140 private final double mBlue;
141 private final double mAlpha;
static Color mix(final Color c1, final Color c2, double blend)