Java Code Examples for java.awt.Color#RGBtoHSB
The following examples show how to use
java.awt.Color#RGBtoHSB .
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
Source File: Style.java From pdfxtk with Apache License 2.0 | 6 votes |
/** * Calculates hilight colors. * * @param rgbColor Base color * @return "hilighted" version of rgbColor */ Color getHilightColor(Color rgbColor) { Color h = (Color) hilightColors.get(rgbColor); if (h == null) { float[] rgb = rgbColor.getRGBColorComponents(null); // Some implementations return values between 0 and 1, others between 0 and 255... // if (rgb[0] <= 1.0 && rgb[1] <= 1.0 && rgb[2] < 1.0) { // rgb[0] = rgb[0]*256; // rgb[1] = rgb[1]*256; // rgb[2] = rgb[2]*256; // } float[] hsb = Color.RGBtoHSB((int) rgb[0], (int) rgb[1], (int) rgb[2], null); h = Color.getHSBColor(hsb[0]+0.5F, hsb[1], Math.max(1.0F, hsb[2]*2)); hilightColors.put(rgbColor, h); } return h; }
Example 2
Source File: Test4193384.java From jdk8u_jdk with GNU General Public License v2.0 | 6 votes |
private static void test(Color[] colors) { JLabel label = new JLabel("Preview Panel"); // NON-NLS: simple label JColorChooser chooser = new JColorChooser(); chooser.setPreviewPanel(label); float[] hsb = new float[3]; for (int i = 0; i < colors.length; i++) { Color color = colors[i]; // Make sure sure that there wasn't a regression // in java.awt.Color and the conversion methods Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsb); if (!color.equals(Color.getHSBColor(hsb[0], hsb[1], hsb[2]))) { throw new Error("color conversion is failed"); } // 4193384 regression test if (!color.equals(new JColorChooser(color).getColor())) { throw new Error("constructor sets incorrect initial color"); } // 4200976 regression test chooser.setColor(color); if (!color.equals(label.getForeground())) { throw new Error("a custom preview panel doesn't handle colors"); } } }
Example 3
Source File: ExtractChannelFilter.java From Pixelitor with GNU General Public License v3.0 | 6 votes |
public static FilterAction getHueChannelFA() { var rgbOp = new RGBPixelOp() { private float[] tmpHSBArray = {0.0f, 0.0f, 0.0f}; @Override public int changeRGB(int a, int r, int g, int b) { tmpHSBArray = Color.RGBtoHSB(r, g, b, tmpHSBArray); // Color.RGBtoHSB return all values in the 0..1 interval int hue = (int) (tmpHSBArray[0] * 255); r = hue; g = hue; b = hue; return a << 24 | r << 16 | g << 8 | b; } }; return rgbOp.toFilterAction("Hue"); }
Example 4
Source File: AbstractRegionPainter.java From seaglass with Apache License 2.0 | 5 votes |
/** * Returns a new color with the saturation cut to one third the original, * and the brightness moved one third closer to white. * * @param color the original color. * * @return the new color. */ protected Color desaturate(Color color) { float[] tmp = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null); tmp[1] /= 3.0f; tmp[2] = clamp(1.0f - (1.0f - tmp[2]) / 3f); return new Color((Color.HSBtoRGB(tmp[0], tmp[1], tmp[2]) & 0xFFFFFF)); }
Example 5
Source File: StaticExcelColorSupport.java From pentaho-reporting with GNU Lesser General Public License v2.1 | 5 votes |
public static short getNearestColor( final Color awtColor, final Map triplets ) { if ( awtColor == null ) { throw new NullPointerException(); } if ( triplets == null || triplets.isEmpty() ) { logger.warn( "Unable to get triplet hashtable" ); return HSSFColor.BLACK.index; } short color = HSSFColor.BLACK.index; double minDiff = Double.MAX_VALUE; // get the color without the alpha chanel final float[] hsb = Color.RGBtoHSB( awtColor.getRed(), awtColor.getGreen(), awtColor.getBlue(), null ); float[] excelHsb = null; final Iterator elements = triplets.values().iterator(); while ( elements.hasNext() ) { final HSSFColor crtColor = (HSSFColor) elements.next(); final short[] rgb = crtColor.getTriplet(); excelHsb = Color.RGBtoHSB( rgb[0], rgb[1], rgb[2], excelHsb ); final double weight = 3.0 * ( Math.min( Math.abs( excelHsb[0] - hsb[0] ), Math.abs( excelHsb[0] - hsb[0] + 1 ) ) ) + Math.abs( excelHsb[1] - hsb[1] ) + Math.abs( excelHsb[2] - hsb[2] ); if ( weight < minDiff ) { minDiff = weight; if ( minDiff == 0 ) { // we found the color ... return crtColor.getIndex(); } color = crtColor.getIndex(); } } return color; }
Example 6
Source File: EntropyFieldFactory.java From ghidra with Apache License 2.0 | 5 votes |
/** * @see ghidra.app.util.viewer.field.FieldFactory#getField(ProxyObj, int) */ @Override public ListingField getField(ProxyObj<?> proxy, int varWidth) { if (!enabled) { return null; } Object obj = proxy.getObject(); if (!enabled || !(obj instanceof CodeUnit)) { return null; } CodeUnit cu = (CodeUnit) obj; byte[] bytes = null; double entropy = 0.0; try { bytes = new byte[256]; int num = cu.getProgram().getMemory().getBytes(cu.getAddress(), bytes); if (num < bytes.length) { return null; } entropy = calcEntropy(bytes, 0, bytes.length); float[] hsbvals = Color.RGBtoHSB(255, 0, 0, null); color = Color.getHSBColor(hsbvals[0], hsbvals[1], (float) (hsbvals[1] * (entropy / 8.0))); } catch (MemoryAccessException e) { return null; } String str = "" + (int) ((entropy / 8.0) * 100); AttributedString text = new AttributedString(str, color, getMetrics()); FieldElement fieldElement = new TextFieldElement(text, 0, 0); return ListingTextField.createSingleLineTextField(this, proxy, fieldElement, startX + varWidth, width, hlProvider); }
Example 7
Source File: ModelViewer.java From OpenRS with GNU General Public License v3.0 | 5 votes |
public static int rgbToHSB(int red, int green, int blue) { float[] HSB = Color.RGBtoHSB(red, green, blue, null); float hue = (HSB[0]); float saturation = (HSB[1]); float brightness = (HSB[2]); int encode_hue = (int) (hue * 63); // to 6-bits int encode_saturation = (int) (saturation * 7); // to 3-bits int encode_brightness = (int) (brightness * 127); // to 7-bits return (encode_hue << 10) + (encode_saturation << 7) + (encode_brightness); }
Example 8
Source File: ColorPanel.java From runelite with BSD 2-Clause "Simplified" License | 5 votes |
private Point closestPointToColor(Color target) { float[] hsb = Color.RGBtoHSB(target.getRed(), target.getGreen(), target.getBlue(), null); int offSize = size - 1; return new Point((int) (hsb[1] * offSize), offSize - (int) (hsb[2] * offSize)); }
Example 9
Source File: ColorPickerPanel.java From Pixelitor with GNU General Public License v3.0 | 4 votes |
/** * Returns the color at the indicated point in HSB values. * * @param p a point relative to this panel. * @return the HSB values at the point provided. */ public float[] getHSB(Point p) { if (mode == RED || mode == GREEN || mode == BLUE) { int[] rgb = getRGB(p); float[] hsb = Color.RGBtoHSB(rgb[0], rgb[1], rgb[2], null); return hsb; } int size = Math.min(MAX_SIZE, Math .min(getWidth() - imagePadding.left - imagePadding.right, getHeight() - imagePadding.top - imagePadding.bottom)); p.translate(-(getWidth() / 2 - size / 2), -(getHeight() / 2 - size / 2)); if (mode == BRI || mode == SAT) { //the two circular views: double radius = size / 2.0; double x = p.getX() - size / 2.0; double y = p.getY() - size / 2.0; double r = Math.sqrt(x * x + y * y) / radius; double theta = Math.atan2(y, x) / (PI * 2.0); if (r > 1) { r = 1; } if (mode == BRI) { return new float[]{ (float) (theta + 0.25f), (float) r, bri}; } else { return new float[]{ (float) (theta + 0.25f), sat, (float) r }; } } else { float s = ((float) p.x) / ((float) size); float b = ((float) p.y) / ((float) size); if (s < 0) { s = 0; } if (s > 1) { s = 1; } if (b < 0) { b = 0; } if (b > 1) { b = 1; } return new float[]{hue, s, b}; } }
Example 10
Source File: ImageColor.java From MyBox with Apache License 2.0 | 4 votes |
public static Color scaleSaturate(Color color, float scale) { float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null); return Color.getHSBColor(hsb[0], hsb[1] * scale, hsb[2]); }
Example 11
Source File: DarkIconFilter.java From netbeans with Apache License 2.0 | 4 votes |
private int[] invertHueBrighten(int[] rgb, float brighten) { float hsb[] = new float[3]; Color.RGBtoHSB(rgb[0], rgb[1], rgb[2], hsb); return decode(Color.HSBtoRGB(hsb[0] > 0.5f ? hsb[0]-0.5f : hsb[0]+0.5f, hsb[1], hsb[2]+(1.0f-hsb[2])*brighten)); }
Example 12
Source File: ColorPickerPanel.java From Pixelitor with GNU General Public License v3.0 | 4 votes |
/** * Sets the selected color of this panel. * <P>If this panel is in HUE, SAT, or BRI mode, then * this method converts these values to HSB coordinates * and calls <code>setHSB</code>. * <P>This method may regenerate the graphic if necessary. * * @param r the red value of the selected color. * @param g the green value of the selected color. * @param b the blue value of the selected color. */ public void setRGB(int r, int g, int b) { if (r < 0 || r > 255) { throw new IllegalArgumentException("The red value (" + r + ") must be between [0,255]."); } if (g < 0 || g > 255) { throw new IllegalArgumentException("The green value (" + g + ") must be between [0,255]."); } if (b < 0 || b > 255) { throw new IllegalArgumentException("The blue value (" + b + ") must be between [0,255]."); } if (red != r || green != g || blue != b) { if (mode == RED || mode == GREEN || mode == BLUE) { int lastR = red; int lastG = green; int lastB = blue; red = r; green = g; blue = b; if (mode == RED) { if (lastR != r) { regenerateImage(); } } else if (mode == GREEN) { if (lastG != g) { regenerateImage(); } } else if (mode == BLUE) { if (lastB != b) { regenerateImage(); } } } else { float[] hsb = new float[3]; Color.RGBtoHSB(r, g, b, hsb); setHSB(hsb[0], hsb[1], hsb[2]); return; } regeneratePoint(); repaint(); fireChangeListeners(); } }
Example 13
Source File: ColorDecode.java From ha-bridge with Apache License 2.0 | 4 votes |
@SuppressWarnings("unchecked") public static String replaceColorData(String request, ColorData colorData, int setIntensity, boolean isHex) { if (request == null) { return null; } if (colorData == null) { return request; } boolean notDone = true; ColorData.ColorMode colorMode = colorData.getColorMode(); List<Integer> rgb = null; if (colorMode == ColorData.ColorMode.XY) { rgb = convertCIEtoRGB((List<Double>) colorData.getData(), setIntensity); } else if (colorMode == ColorData.ColorMode.CT) { rgb = convertCTtoRGB((Integer) colorData.getData()); } else if (colorMode == ColorData.ColorMode.HS) { rgb = convertHSLtoRGB((HueSatBri) colorData.getData()); } while (notDone) { notDone = false; if (request.contains(COLOR_R)) { request = request.replace(COLOR_R, isHex ? String.format("%02X", rgb.get(0)) : String.valueOf(rgb.get(0))); notDone = true; } if (request.contains(COLOR_G)) { request = request.replace(COLOR_G, isHex ? String.format("%02X", rgb.get(1)) : String.valueOf(rgb.get(1))); notDone = true; } if (request.contains(COLOR_B)) { request = request.replace(COLOR_B, isHex ? String.format("%02X", rgb.get(2)) : String.valueOf(rgb.get(2))); notDone = true; } if (request.contains(COLOR_RX)) { request = request.replace(COLOR_RX, String.format("%02X", rgb.get(0))); notDone = true; } if (request.contains(COLOR_GX)) { request = request.replace(COLOR_GX, String.format("%02X", rgb.get(1))); notDone = true; } if (request.contains(COLOR_BX)) { request = request.replace(COLOR_BX, String.format("%02X", rgb.get(2))); notDone = true; } if (request.contains(COLOR_RGBX)) { request = request.replace(COLOR_RGBX, String.format("%02X%02X%02X", rgb.get(0), rgb.get(1), rgb.get(2))); notDone = true; } if (request.contains(COLOR_HSL)) { float[] hsb = new float[3]; Color.RGBtoHSB(rgb.get(0), rgb.get(1), rgb.get(2), hsb); float hue = hsb[0] * (float) 360.0; float sat = hsb[1] * (float) 100.0; float bright = hsb[2] * (float) 100.0; request = request.replace(COLOR_HSL, String.format("%f,%f,%f", hue, sat, bright)); notDone = true; } Matcher m = COLOR_MILIGHT.matcher(request); while (m.find()) { int group = Integer.parseInt(m.group(1)); request = m.replaceFirst(getMilightV5FromRgb(rgb, group)); m.reset(request); } log.debug("Request <<" + request + ">>, not done: " + notDone); } return request; }
Example 14
Source File: RegenMeterOverlay.java From runelite with BSD 2-Clause "Simplified" License | 4 votes |
private static Color brighter(int color) { float[] hsv = new float[3]; Color.RGBtoHSB(color >>> 16, (color >> 8) & 0xFF, color & 0xFF, hsv); return Color.getHSBColor(hsv[0], 1.f, 1.f); }
Example 15
Source File: ColorPickerPanel.java From PyramidShader with GNU General Public License v3.0 | 4 votes |
/** Sets the selected color of this panel. * <P>If this panel is in HUE, SAT, or BRI mode, then * this method converts these values to HSB coordinates * and calls <code>setHSB</code>. * <P>This method may regenerate the graphic if necessary. * * @param r the red value of the selected color. * @param g the green value of the selected color. * @param b the blue value of the selected color. */ public void setRGB(int r,int g,int b) { if(r<0 || r>255) throw new IllegalArgumentException("The red value ("+r+") must be between [0,255]."); if(g<0 || g>255) throw new IllegalArgumentException("The green value ("+g+") must be between [0,255]."); if(b<0 || b>255) throw new IllegalArgumentException("The blue value ("+b+") must be between [0,255]."); if(red!=r || green!=g || blue!=b) { if(mode==ColorPicker.RED || mode==ColorPicker.GREEN || mode==ColorPicker.BLUE) { int lastR = red; int lastG = green; int lastB = blue; red = r; green = g; blue = b; if(mode==ColorPicker.RED) { if(lastR!=r) { regenerateImage(); } } else if(mode==ColorPicker.GREEN) { if(lastG!=g) { regenerateImage(); } } else if(mode==ColorPicker.BLUE) { if(lastB!=b) { regenerateImage(); } } } else { float[] hsb = new float[3]; Color.RGBtoHSB(r, g, b, hsb); setHSB(hsb[0],hsb[1],hsb[2]); return; } regeneratePoint(); repaint(); fireChangeListeners(); } }
Example 16
Source File: ImageTransformer.java From triplea with GNU General Public License v3.0 | 4 votes |
/** * Apply color and brightness to the given image. This uses the hue and saturation of the given * color. It ignores the brightness of the color and uses the given brightness value. */ public static void colorize(final Color color, final int brightness, final BufferedImage image) { final float[] hsb = Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), null); colorize((int) (hsb[0] * 360), (int) (hsb[1] * 100), brightness, image); }
Example 17
Source File: GraphicC7Translator.java From GraphicCR with Apache License 2.0 | 3 votes |
/** * 目标像素判断 * <br />(基于亮度) * * @param colorInt * @return */ private boolean isTarget(int colorInt) { Color color = new Color(colorInt); float[] hsb = new float[3]; Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsb); return hsb[2] < 0.5f; // 亮度 }
Example 18
Source File: GraphicC3Translator.java From GraphicCR with Apache License 2.0 | 3 votes |
/** * 目标像素判断 * <br />(基于饱和度) * * @param colorInt * @return */ private boolean isTarget(int colorInt) { Color color = new Color(colorInt); float[] hsb = new float[3]; Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsb); return hsb[1] > 0.2f; // 饱和度 }
Example 19
Source File: HSBFilter.java From GIFKR with GNU Lesser General Public License v3.0 | 3 votes |
@Override public int apply(int color) { float[] hsb = Color.RGBtoHSB((color >> 16) & 255, (color >> 8) & 255, color & 255, null); int idx = mode.getIdx(); hsb[idx] = level*value + (1-level)*hsb[idx]; return Color.HSBtoRGB(hsb[0], hsb[1], hsb[2]); }
Example 20
Source File: GraphicC5Translator.java From GraphicCR with Apache License 2.0 | 3 votes |
/** * 目标像素判断 * <br />(基于亮度) * * @param colorInt * @return */ private boolean isTarget(int colorInt) { Color color = new Color(colorInt); float[] hsb = new float[3]; Color.RGBtoHSB(color.getRed(), color.getGreen(), color.getBlue(), hsb); return hsb[2] < 0.5f; // 亮度 }