Java Code Examples for java.awt.Color#HSBtoRGB

The following examples show how to use java.awt.Color#HSBtoRGB . These examples are extracted from open source projects. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
public void updateIcon(){
	Graphics g = icon.getGraphics();
	if(shape.getColor() == 0){
		g.drawImage(Resources.CLEAR_SHAPE_ICONS[shape.getType().ordinal()+1],0,0,null);
	} else {
		Image src = Resources.SHAPE_ICONS[shape.getType().ordinal()+1];
		g.drawImage(src, 0, 0, null);
		int[] data = ((DataBufferInt)icon.getRaster().getDataBuffer()).getData();
		float[] hsb = new float[3];
		int col = shapeList.getColor(shape.getColor());
		Color.RGBtoHSB((col>>16)&0xFF,(col>>8)&0xFF,col&0xFF,hsb);
		float hue = hsb[0];
		float sat = hsb[1];
		float bright = hsb[2];
		for(int i = 0; i < data.length; i++){
			int rgb = data[i];
			int a = rgb&0xFF000000;
			Color.RGBtoHSB((rgb>>16)&0xFF, (rgb>>8)&0xFF, rgb&0xFF, hsb);
			hsb[0] = hue;
			hsb[1] = sat;
			hsb[2] *= 0.5f + 0.5f*bright;
			data[i] = a | (Color.HSBtoRGB(hsb[0], hsb[1], hsb[2])&0xFFFFFF);
		}
	}
}
 
Example 2
/**
 * @param boardView1
 * @param mp
 */
public MovementModifierEnvelopeSprite(BoardView1 boardView1, MovePath mp) {
    super(boardView1, mp.getFinalCoords());

    facing = Facing.valueOfInt(mp.getFinalFacing());
    
    int modi = Compute.getTargetMovementModifier(mp.getHexesMoved(),
            mp.isJumping(),
            mp.getEntity() instanceof VTOL,
            boardView1.game).getValue();
    //Add evasion bonus for 'Mech with dual cockpit
    if (mp.getEntity().getCrew().getCrewType().equals(CrewType.DUAL)
            && mp.getEntity().getCrew().hasDedicatedPilot()
            && !mp.isJumping() && mp.getHexesMoved() > 0) {
        modi++;
    }
    float hue = 0.7f - 0.15f * modi;
    color = new Color(Color.HSBtoRGB(hue, 1, 1));
    modifier = String.format("%+d", modi);
}
 
Example 3
Source Project: SproutLife   File: AngleColorModel.java    License: MIT License 6 votes vote down vote up
private Color getColor(Organism o, float h, float s, float br) {
    Organism[] ancestors = new Organism[4];
    Organism a = o;
    for (int ai=0;ai<ancestors.length;ai++) {
        ancestors[ai]=a;
        a = a.getParent();
        if (a==null) {
            return getRandomColor(o);
        }
    }
    double dp1 = getDotProduct(ancestors[0], ancestors[1], ancestors[2]);
    double dp2 = getDotProduct(ancestors[1], ancestors[2], ancestors[3]);

    float r1 = getRotation(dp1);
    float r2 = getRotation(dp2);

    Color c1 = new Color(Color.HSBtoRGB(h+r1, s, br));
    Color c2 = new Color(Color.HSBtoRGB(h+r2, s, br));

    int r = (c1.getRed()*3+c2.getRed()*2)/5;
    int g = (c1.getGreen()*3+c2.getGreen()*2)/5;
    int b = (c1.getBlue()*3+c2.getBlue()*2)/5;

    return new Color(r,g,b);
}
 
Example 4
Source Project: diirt   File: LabelColorSchemes.java    License: MIT License 6 votes vote down vote up
/**
 *Returns a new LabelColorScheme, based on the given hex labels.
 * @param labels a list of strings (color values in hexadecimal)
 * @return a LabelColorScheme with the method getColor, that will return a Color corresponding to the hex label.
 */
public static LabelColorScheme orderedHueColor(List<String> labels) {
    final List<String> orderedUniqueLabels = new ArrayList<String>(new TreeSet<String>(labels));
    return new LabelColorScheme() {

        float step = (1.0f / 3) / ((float) Math.ceil(orderedUniqueLabels.size() / 3.0));

        @Override
        public int getColor(String label) {
            int index = orderedUniqueLabels.indexOf(label);
            if (index == -1) {
                return 0;
            }
            return Color.HSBtoRGB(index * step, 1.0f, 1.0f);
        }
    };
}
 
Example 5
public static Paint[] getFullRainBowScaleUpperBound() {
  int ncolor = 360;
  Color[] readRainbow = new Color[ncolor];
  Color[] rainbow = new Color[ncolor];

  float x = (float) (1. / (ncolor + 160));
  for (int i = 0; i < readRainbow.length; i++) {
    readRainbow[i] = new Color(Color.HSBtoRGB((i) * x, 1.0F, 1.0F));
  }
  for (int i = 0; i < readRainbow.length - 5; i++) {
    rainbow[i] = readRainbow[readRainbow.length - i - 1];
  }
  for (int i = rainbow.length - 5; i < rainbow.length; i++) {
    rainbow[i] = new Color(244, 66, 223);
  }
  return rainbow;
}
 
Example 6
Source Project: pumpernickel   File: TextBlock.java    License: MIT License 6 votes vote down vote up
public TextBlock(float hue, String text) {
	properties.addListener(new PropertyChangeListener() {
		@Override
		public void propertyChange(PropertyChangeEvent evt) {
			dirty = true;
		}
	});
	setAntiAliased(true);
	setTextPaint(Color.black);
	setUsingFractionalMetrics(true);
	setFont(new Font("default", Font.BOLD, 14));
	setText(text);
	setInsets(new Insets(2, 2, 2, 2));
	setShadowActive(true);
	setTextShadowActive(true);
	Color c1 = new Color(Color.HSBtoRGB(hue, .8f, 1));
	Color c2 = new Color(Color.HSBtoRGB(hue, .8f, .7f));
	setBackground(new GradientPaint(0, 0, c1, 0, 20, c2));
	setBorderPaint(new Color(0, 0, 0, 90));
	setStroke(new BasicStroke(1));
	setCurveWidth(18);
	setTextInsets(new Insets(2, 8, 2, 8));
	setBackgroundShadowColor(new Color(0, 0, 0, 50));
}
 
Example 7
public static void main(String[] args) throws Exception {
    int width = 1920, height = 1080, max = 1000;
    BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    int black = 0;
    int[] colors = new int[max];
    for (int i = 0; i<max; i++) {
        colors[i] = Color.HSBtoRGB(i/256f, 1, i/(i+8f));
    }

    for (int row = 0; row < height; row++) {
        for (int col = 0; col < width; col++) {
            double c_re = (col - width/2)*4.0/width;
            double c_im = (row - height/2)*4.0/width;
            double x = 0, y = 0;
            double r2;
            int iteration = 0;
            while (x*x+y*y < 4 && iteration < max) {
                double x_new = x*x-y*y+c_re;
                y = 2*x*y+c_im;
                x = x_new;
                iteration++;
            } 
            if (iteration < max) image.setRGB(col, row, colors[iteration]);
            else image.setRGB(col, row, black);
        }
    }

    ImageIO.write(image, "png", new File("mandelbrot.png"));
}
 
Example 8
@Override
public int getMovementColor(float movementProgress)
{
	float hue = this.hueBeforeMove + this.hueIncrease * movementProgress;
	hue = hue - (float) Math.floor(hue);
	return Color.HSBtoRGB(hue, saturation, 1f);
}
 
Example 9
public static Color[] generatePastels(int n) {
	Color[] cc = new Color[n];
	for (int i=0; i<cc.length; i++) {
		cc[i] = new Color(Color.HSBtoRGB(((float)i)/n, 0.76f,1f));
	}
	return cc;
}
 
Example 10
Source Project: pumpernickel   File: DarkenedIcon.java    License: MIT License 5 votes vote down vote up
/**
 * 
 * @param c
 *            the optional component used to invoke icon.paintIcon().
 *            Unfortunately for some icons (like
 *            UIManager.getIcon("IthisnternalFrame.maximizeIcon")) on
 *            Windows: we'll get a NPE if this is null.
 * 
 * @return
 */
private BufferedImage createImage(Component c) {
	Icon i = getIcon();
	BufferedImage bi = new BufferedImage(i.getIconWidth(),
			i.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
	Graphics2D g = bi.createGraphics();
	i.paintIcon(c, g, 0, 0);
	g.dispose();

	int[] row = new int[bi.getWidth()];
	float[] hsbvals = new float[3];
	for (int y = 0; y < bi.getHeight(); y++) {
		bi.getRaster().getDataElements(0, y, bi.getWidth(), 1, row);
		for (int x = 0; x < bi.getWidth(); x++) {
			int red = (row[x] & 0x00ff0000) >> 16;
			int green = (row[x] & 0x00ff00) >> 8;
			int blue = (row[x] & 0x00ff) >> 0;
			Color.RGBtoHSB(red, green, blue, hsbvals);
			hsbvals[2] = hsbvals[2] * (1 - f);
			int k = Color.HSBtoRGB(hsbvals[0], hsbvals[1], hsbvals[2]);
			k = (k & 0xffffff) + (row[x] & 0xff000000);
			row[x] = k;
		}
		bi.getRaster().setDataElements(0, y, bi.getWidth(), 1, row);
	}
	return bi;
}
 
Example 11
Source Project: mars-sim   File: HsbColor.java    License: GNU General Public License v3.0 5 votes vote down vote up
private HsbColor(Builder builder) {
    // private Constructor can only be called from Builder
    mHue = builder.getHue();
    mSaturation = builder.getSaturation();
    mBrightness = builder.getBrightness();
    final Color TMP_COLOR = new Color(Color.HSBtoRGB(mHue, mSaturation, mBrightness));
    mColor = new Color(TMP_COLOR.getRed(), TMP_COLOR.getGreen(), TMP_COLOR.getBlue(), builder.getAlpha());
}
 
Example 12
@Override
public void composeRGB(int[] src, int[] dst, float alpha) {
    int w = src.length;

    for (int i = 0; i < w; i += 4) {
        int sr = src[i];
        int dir = dst[i];
        int sg = src[i + 1];
        int dig = dst[i + 1];
        int sb = src[i + 2];
        int dib = dst[i + 2];
        int sa = src[i + 3];
        int dia = dst[i + 3];
        int dor, dog, dob;

        Color.RGBtoHSB(sr, sg, sb, sHSB);
        Color.RGBtoHSB(dir, dig, dib, dHSB);

        dHSB[0] = sHSB[0];

        int doRGB = Color.HSBtoRGB(dHSB[0], dHSB[1], dHSB[2]);
        dor = (doRGB & 0xff0000) >> 16;
        dog = (doRGB & 0xff00) >> 8;
        dob = (doRGB & 0xff);

        float a = alpha * sa / 255.0f;
        float ac = 1 - a;

        dst[i] = (int) (a * dor + ac * dir);
        dst[i + 1] = (int) (a * dog + ac * dig);
        dst[i + 2] = (int) (a * dob + ac * dib);
        dst[i + 3] = (int) (sa * alpha + dia * ac);
    }
}
 
Example 13
Source Project: seaglass   File: AbstractRegionPainter.java    License: Apache License 2.0 5 votes vote down vote up
/**
 * Derive and returns a color, which is based on an existing color.
 *
 * @param  src     The source color from which to derive the new color.
 * @param  hOffset The hue offset used for derivation.
 * @param  sOffset The saturation offset used for derivation.
 * @param  bOffset The brightness offset used for derivation.
 * @param  aOffset The alpha offset used for derivation. Between 0...255
 *
 * @return The derived color.
 */
protected Color deriveColor(Color src, float hOffset, float sOffset, float bOffset, int aOffset) {
    float[] tmp = Color.RGBtoHSB(src.getRed(), src.getGreen(), src.getBlue(), null);

    // apply offsets
    tmp[0] = clamp(tmp[0] + hOffset);
    tmp[1] = clamp(tmp[1] + sOffset);
    tmp[2] = clamp(tmp[2] + bOffset);
    int alpha = clamp(src.getAlpha() + aOffset);

    return new Color((Color.HSBtoRGB(tmp[0], tmp[1], tmp[2]) & 0xFFFFFF) | (alpha << 24), true);
}
 
Example 14
Source Project: pumpernickel   File: ColorPickerSliderUI.java    License: MIT License 4 votes vote down vote up
@Override
public synchronized void paintTrack(Graphics g) {
	int mode = colorPicker.getMode();
	if (mode == JColorPicker.HUE || mode == JColorPicker.BRI
			|| mode == JColorPicker.SAT) {
		float[] hsb = colorPicker.getHSB();
		if (mode == JColorPicker.HUE) {
			for (int y = 0; y < trackRect.height; y++) {
				float hue = ((float) y) / ((float) trackRect.height);
				intArray[y] = Color.HSBtoRGB(hue, 1, 1);
			}
		} else if (mode == JColorPicker.SAT) {
			for (int y = 0; y < trackRect.height; y++) {
				float sat = 1 - ((float) y) / ((float) trackRect.height);
				intArray[y] = Color.HSBtoRGB(hsb[0], sat, hsb[2]);
			}
		} else {
			for (int y = 0; y < trackRect.height; y++) {
				float bri = 1 - ((float) y) / ((float) trackRect.height);
				intArray[y] = Color.HSBtoRGB(hsb[0], hsb[1], bri);
			}
		}
	} else {
		int[] rgb = colorPicker.getRGB();
		if (mode == JColorPicker.RED) {
			for (int y = 0; y < trackRect.height; y++) {
				int red = 255 - (int) (y * 255 / trackRect.height + .49);
				intArray[y] = (red << 16) + (rgb[1] << 8) + (rgb[2]);
			}
		} else if (mode == JColorPicker.GREEN) {
			for (int y = 0; y < trackRect.height; y++) {
				int green = 255 - (int) (y * 255 / trackRect.height + .49);
				intArray[y] = (rgb[0] << 16) + (green << 8) + (rgb[2]);
			}
		} else if (mode == JColorPicker.BLUE) {
			for (int y = 0; y < trackRect.height; y++) {
				int blue = 255 - (int) (y * 255 / trackRect.height + .49);
				intArray[y] = (rgb[0] << 16) + (rgb[1] << 8) + (blue);
			}
		}
	}
	Graphics2D g2 = (Graphics2D) g;
	Rectangle r = new Rectangle(6, trackRect.y, 14, trackRect.height);
	if (slider.hasFocus()) {
		PlafPaintUtils.paintFocus(g2, r, 3);
	}

	bi.getRaster().setDataElements(0, 0, 1, trackRect.height, intArray);
	TexturePaint p = new TexturePaint(bi, new Rectangle(0, trackRect.y, 1,
			bi.getHeight()));
	g2.setPaint(p);
	g2.fillRect(r.x, r.y, r.width, r.height);

	PlafPaintUtils.drawBevel(g2, r);
}
 
Example 15
Source Project: OpenModsLib   File: GuiComponentColorPicker.java    License: MIT License 4 votes vote down vote up
public int getColor() {
	float h = pointX * 0.01f;
	float b = 1.0f - (pointY * 0.02f);
	float s = 1.0f - (tone / 255f);
	return Color.HSBtoRGB(h, s, b) & 0xFFFFFF;
}
 
Example 16
public RangeSliderUI(final RangeSlider RANGE_SLIDER) {
    super(RANGE_SLIDER);
    thumbShape = RANGE_SLIDER.getThumbShape() != null ? RANGE_SLIDER.getThumbShape() : RangeSlider.ThumbShape.ROUND;
    thumbDesign = RANGE_SLIDER.getThumbDesign() != null ? RANGE_SLIDER.getThumbDesign() : RangeSlider.ThumbDesign.DARK;
    final Color RANGE_COLOR = RANGE_SLIDER.getRangeColor() != null ? RANGE_SLIDER.getRangeColor() : new Color(51, 204, 255);
    final int RED = RANGE_COLOR.getRed();
    final int GREEN = RANGE_COLOR.getGreen();
    final int BLUE = RANGE_COLOR.getBlue();
    if ((RED == GREEN) && (GREEN == BLUE)) {
        rangeColors = new Color[]{
            new Color(Color.HSBtoRGB(0.0f, 0.0f, 0.95f)),
            new Color(Color.HSBtoRGB(0.0f, 0.0f, 0.88f)),
            new Color(Color.HSBtoRGB(0.0f, 0.0f, 0.67f)),
            new Color(Color.HSBtoRGB(0.0f, 0.0f, 0.49f))
        };
    } else {
        final float RANGE_COLOR_HUE = Color.RGBtoHSB(RED, GREEN, BLUE, null)[0];
        rangeColors = new Color[]{
            new Color(Color.HSBtoRGB(RANGE_COLOR_HUE, 0.85f, 0.95f)),
            new Color(Color.HSBtoRGB(RANGE_COLOR_HUE, 0.85f, 0.88f)),
            new Color(Color.HSBtoRGB(RANGE_COLOR_HUE, 0.85f, 0.67f)),
            new Color(Color.HSBtoRGB(RANGE_COLOR_HUE, 0.85f, 0.49f))
        };
    }
    darkTrack = RANGE_SLIDER.isDarkTrack();
    slider = RANGE_SLIDER;
    initThumbs();
    lowerThumbHover = false;
    upperThumbHover = false;
    TRACK_FRAME = new RoundRectangle2D.Double();
    TRACK = new RoundRectangle2D.Double();
    RANGE = new RoundRectangle2D.Double();
    switch(thumbShape) {
        case ROUND:
            indicatorsVisible = true;
            break;
        case SQUARE:
            indicatorsVisible = true;
            break;
        default:
            indicatorsVisible = false;
    }
}
 
Example 17
Source Project: Pixelitor   File: Gradient.java    License: GNU General Public License v3.0 4 votes vote down vote up
private void rebuildGradient() {
        xKnots[0] = -1;
        xKnots[numKnots - 1] = 256;
        yKnots[0] = yKnots[1];
        yKnots[numKnots - 1] = yKnots[numKnots - 2];

//		int knot = 0;
        for (int i = 1; i < numKnots - 1; i++) {
            float spanLength = xKnots[i + 1] - xKnots[i];
            int end = xKnots[i + 1];
            if (i == numKnots - 2) {
                end++;
            }
            for (int j = xKnots[i]; j < end; j++) {
                int rgb1 = yKnots[i];
                int rgb2 = yKnots[i + 1];
                float[] hsb1 = Color.RGBtoHSB((rgb1 >> 16) & 0xff, (rgb1 >> 8) & 0xff, rgb1 & 0xff, null);
                float[] hsb2 = Color.RGBtoHSB((rgb2 >> 16) & 0xff, (rgb2 >> 8) & 0xff, rgb2 & 0xff, null);
                float t = (j - xKnots[i]) / spanLength;
                int type = getKnotType(i);
                int blend = getKnotBlend(i);

                if (j >= 0 && j <= 255) {
                    switch (blend) {
                        case CONSTANT:
                            t = 0;
                            break;
                        case LINEAR:
                            break;
                        case SPLINE:
//						map[i] = ImageMath.colorSpline(j, numKnots, xKnots, yKnots);
                            t = ImageMath.smoothStep(0.15f, 0.85f, t);
                            break;
                        case CIRCLE_UP:
                            t = t - 1;
                            t = (float) Math.sqrt(1 - t * t);
                            break;
                        case CIRCLE_DOWN:
                            t = 1 - (float) Math.sqrt(1 - t * t);
                            break;
                    }
//					if (blend != SPLINE) {
                    switch (type) {
                        case RGB:
                            map[j] = ImageMath.mixColors(t, rgb1, rgb2);
                            break;
                        case HUE_CW:
                        case HUE_CCW:
                            if (type == HUE_CW) {
                                if (hsb2[0] <= hsb1[0]) {
                                    hsb2[0] += 1.0f;
                                }
                            } else {
                                if (hsb1[0] <= hsb2[1]) {
                                    hsb1[0] += 1.0f;
                                }
                            }
                            float h = ImageMath.lerp(t, hsb1[0], hsb2[0]) % ImageMath.TWO_PI;
                            float s = ImageMath.lerp(t, hsb1[1], hsb2[1]);
                            float b = ImageMath.lerp(t, hsb1[2], hsb2[2]);
                            map[j] = 0xff000000 | Color.HSBtoRGB(h, s, b);//FIXME-alpha
                            break;
                    }
//					}
                }
            }
        }
    }
 
Example 18
Source Project: nanoleaf-desktop   File: PanelCanvas.java    License: MIT License 4 votes vote down vote up
public void checkAuroraState() throws StatusCodeException
{
	if (devices != null && devices[0] != null)
	{
		stopLoadingSpinner();
		
		String colorMode = devices[0].state().getColorMode();
		if (colorMode.equals("hs") || colorMode.equals("ct"))
		{
			if (customEffectDisplay != null)
			{
				customEffectDisplay.stop();
			}
			
			int hue = devices[0].state().getHue();
			int sat = devices[0].state().getSaturation();
			int bri = devices[0].state().getBrightness();
			setHSB(hue, sat, bri);
		}
		else if (colorMode.equals("effects") || colorMode.equals("effect"))
		{
			String currentEffectName = devices[0].effects().getCurrentEffectName();
			Effect currentEffect = devices[0].effects().getCurrentEffect();
			if (currentEffect != null && currentEffect.getAnimType() != null)
			{
				if (currentEffectName.equals("*Static*") ||
						currentEffect.getAnimType().equals(Effect.Type.STATIC))
				{
					if (customEffectDisplay != null)
					{
						customEffectDisplay.stop();
					}
					setStaticEffect(currentEffect);
				}
				else if (currentEffect.getAnimType().equals(Effect.Type.CUSTOM))
				{
					// **************** Currently disabled ****************
					//customEffectDisplay.changeEffect(currentEffect);
				}
				else if (!currentEffect.getAnimType().equals(Effect.Type.STATIC))
				{
					if (customEffectDisplay != null)
					{
						customEffectDisplay.stop();
					}
					io.github.rowak.nanoleafapi.Color[] palette =
							currentEffect.getPalette();
					int[] avgRgb = new int[3];
					if (palette != null)
					{
						for (io.github.rowak.nanoleafapi.Color c : palette)
						{
							Color rgb = new Color(Color.HSBtoRGB(c.getHue()/360f,
									c.getSaturation()/100f, c.getBrightness()/100f));
							avgRgb[0] += rgb.getRed();
							avgRgb[1] += rgb.getGreen();
							avgRgb[2] += rgb.getBlue();
						}
						Color avgColor = new Color(avgRgb[0]/palette.length,
								avgRgb[1]/palette.length, avgRgb[2]/palette.length);
						setColor(avgColor);
					}
				}
			}
		}
	}
}
 
Example 19
@Override
public int getMovementColor(float movementProgress)
{
	return Color.HSBtoRGB(this.hue, saturation, 1.0f);
}
 
Example 20
Source Project: gcs   File: Colors.java    License: Mozilla Public License 2.0 2 votes vote down vote up
/**
 * @param color  The color to base the new color on.
 * @param amount The amount to adjust the hue by, in the range -1 to 1.
 * @return The adjusted color.
 */
public static final Color adjustHue(Color color, float amount) {
    float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null);
    return new Color(Color.HSBtoRGB(Math.max(Math.min(hsb[0] + amount, 1.0f), 0.0f), hsb[1], hsb[2]));
}