android.graphics.Color.RGBToHSV()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(6.8k)|赞(0)|评价(0)|浏览(228)

本文整理了Java中android.graphics.Color.RGBToHSV()方法的一些代码示例,展示了Color.RGBToHSV()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Color.RGBToHSV()方法的具体详情如下:
包路径:android.graphics.Color
类名称:Color
方法名:RGBToHSV

Color.RGBToHSV介绍

暂无

代码示例

代码示例来源:origin: googlemaps/android-maps-utils

/**
 * Helper function for creation of color map
 * Interpolates between two given colors using their HSV values.
 *
 * @param color1 First color
 * @param color2 Second color
 * @param ratio  Between 0 to 1. Fraction of the distance between color1 and color2
 * @return Color associated with x2
 */
static int interpolateColor(int color1, int color2, float ratio) {
  int alpha = (int) ((Color.alpha(color2) - Color.alpha(color1)) * ratio + Color.alpha(color1));
  float[] hsv1 = new float[3];
  Color.RGBToHSV(Color.red(color1), Color.green(color1), Color.blue(color1), hsv1);
  float[] hsv2 = new float[3];
  Color.RGBToHSV(Color.red(color2), Color.green(color2), Color.blue(color2), hsv2);
  // adjust so that the shortest path on the color wheel will be taken
  if (hsv1[0] - hsv2[0] > 180) {
    hsv2[0] += 360;
  } else if (hsv2[0] - hsv1[0] > 180) {
    hsv1[0] += 360;
  }
  // Interpolate using calculated ratio
  float[] result = new float[3];
  for (int i = 0; i < 3; i++) {
    result[i] = (hsv2[i] - hsv1[i]) * (ratio) + hsv1[i];
  }
  return Color.HSVToColor(alpha, result);
}

代码示例来源:origin: robolectric/robolectric

@Test
public void RGBToHSVShouldBeCorrectForBlue() {
 float[] hsv = new float[3];
 Color.RGBToHSV(0, 0, 255, hsv);
 assertThat(hsv[0]).isEqualTo(240f);
 assertThat(hsv[1]).isEqualTo(1.0f);
 assertThat(hsv[2]).isEqualTo(1.0f);
}

代码示例来源:origin: PhilJay/MPAndroidChart

Color.RGBToHSV(Color.red(originalColor), Color.green(originalColor),
    Color.blue(originalColor), _hsvBuffer);
_hsvBuffer[2] *= 0.5f;

代码示例来源:origin: ajavamind/Processing-Cardboard

public final float saturation(int what) {
 if (what != cacheHsbKey) {
  Color.RGBToHSV((what >> 16) & 0xff, (what >> 8) & 0xff,
          what & 0xff, cacheHsbValue);
  cacheHsbKey = what;
 }
 return cacheHsbValue[1] * colorModeY;
}

代码示例来源:origin: ajavamind/Processing-Cardboard

public final float hue(int what) {
 if (what != cacheHsbKey) {
  Color.RGBToHSV((what >> 16) & 0xff, (what >> 8) & 0xff,
          what & 0xff, cacheHsbValue);
  cacheHsbKey = what;
 }
 return (cacheHsbValue[0] / 360f) * colorModeX;
}

代码示例来源:origin: ajavamind/Processing-Cardboard

public final float brightness(int what) {
 if (what != cacheHsbKey) {
  Color.RGBToHSV((what >> 16) & 0xff, (what >> 8) & 0xff,
          what & 0xff, cacheHsbValue);
  cacheHsbKey = what;
 }
 return cacheHsbValue[2] * colorModeZ;
}

代码示例来源:origin: fasteque/rgb-tool

public static float[] RGBToHSB(@IntRange(from = 0, to = 255) int r,
                @IntRange(from = 0, to = 255) int g,
                @IntRange(from = 0, to = 255) int b) {
  float[] hsb = new float[3];
  Color.RGBToHSV(r, g, b, hsb);
  return hsb;
}

代码示例来源:origin: jruesga/timeline-chart-view

public static int getComplementaryColor(int color) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[0] = (hsv[0] + 180) % 360;
    return Color.HSVToColor(hsv);
  }
}

代码示例来源:origin: fasteque/rgb-tool

public static int getComplementaryColor(@IntRange(from = 0, to = 255) int rgbRColor,
                    @IntRange(from = 0, to = 255) int rgbGColor,
                    @IntRange(from = 0, to = 255) int rgbBColor) {
  float[] hsv = new float[3];
  Color.RGBToHSV(rgbRColor, rgbGColor, rgbBColor, hsv);
  hsv[0] = (hsv[0] + 180) % 360;
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: gigabytedevelopers/FireFiles

public static int getComplementaryColor(int colorToInvert) {
  float[] hsv = new float[3];
  Color.RGBToHSV(Color.red(colorToInvert), Color.green(colorToInvert),
      Color.blue(colorToInvert), hsv);
  hsv[0] = (hsv[0] + 180) % 360;
  return Color.HSVToColor(hsv);
}

代码示例来源:origin: saki4510t/libcommon

/**
 * 指定したARGB値をセットする
 * @param cl    ARGB値
 * @param force    強制更新するかどうか
 */
protected void internalSetColor(final int cl, final boolean force) {
  final int alpha = Color.alpha(cl);
  final int red = Color.red(cl);
  final int blue = Color.blue(cl);
  final int green = Color.green(cl);
  Color.RGBToHSV(red, green, blue, HSV);
  setColor(alpha, HSV[0], HSV[1], HSV[2], force);
}

代码示例来源:origin: fasteque/rgb-tool

public static int getContrastColor(@IntRange(from = 0, to = 255) int rgbRColor,
                    @IntRange(from = 0, to = 255) int rgbGColor,
                    @IntRange(from = 0, to = 255) int rgbBColor) {
    float[] hsv = new float[3];
    Color.RGBToHSV(rgbRColor, rgbGColor, rgbBColor, hsv);
    if (hsv[2] < 0.5) {
      hsv[2] = 0.7f;
    } else {
      hsv[2] = 0.3f;
    }
    hsv[1] = hsv[1] * 0.2f;

    return Color.HSVToColor(hsv);
  }
}

代码示例来源:origin: MCMrARM/revolution-irc

public void setColor(int color) {
  Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), mTmpHSV);
  mCurrentSaturation = mTmpHSV[1];
  mCurrentValue = mTmpHSV[2];
  if (mHuePicker != null)
    mHuePicker.setValue(mTmpHSV[0]); // will call setHue from callback
  else
    setHue(mTmpHSV[0]);
}

代码示例来源:origin: jaredrummler/ColorPicker

/**
 * Set the color this view should show.
 *
 * @param color The color that should be selected. #argb
 * @param callback If you want to get a callback to your OnColorChangedListener.
 */
public void setColor(int color, boolean callback) {
 int alpha = Color.alpha(color);
 int red = Color.red(color);
 int blue = Color.blue(color);
 int green = Color.green(color);
 float[] hsv = new float[3];
 Color.RGBToHSV(red, green, blue, hsv);
 this.alpha = alpha;
 hue = hsv[0];
 sat = hsv[1];
 val = hsv[2];
 if (callback && onColorChangedListener != null) {
  onColorChangedListener.onColorChanged(Color.HSVToColor(this.alpha, new float[] { hue, sat, val }));
 }
 invalidate();
}

代码示例来源:origin: PrivacyApps/document-viewer

/**
 * Set the color this view should show.
 * @param color The color that should be selected.
 * @param callback If you want to get a callback to
 * your OnColorChangedListener.
 */
public void setColor(int color, boolean callback){

  int alpha = Color.alpha(color);
  int red = Color.red(color);
  int blue = Color.blue(color);
  int green = Color.green(color);
  
  float[] hsv = new float[3];
  
  Color.RGBToHSV(red, green, blue, hsv);
  mAlpha = alpha;
  mHue = hsv[0];
  mSat = hsv[1];
  mVal = hsv[2];
  
  if(callback && mListener != null){			
    mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal}));				
  }
  
  invalidate();
}

代码示例来源:origin: powerpoint45/Lucid-Browser

/**
 * Set the color this view should show.
 * @param color The color that should be selected.
 * @param callback If you want to get a callback to
 * your OnColorChangedListener.
 */
public void setColor(int color, boolean callback){

  int alpha = Color.alpha(color);
  int red = Color.red(color);
  int blue = Color.blue(color);
  int green = Color.green(color);
  
  float[] hsv = new float[3];
  
  Color.RGBToHSV(red, green, blue, hsv);
  mAlpha = alpha;
  mHue = hsv[0];
  mSat = hsv[1];
  mVal = hsv[2];
  
  if(callback && mListener != null){			
    mListener.onColorChanged(Color.HSVToColor(mAlpha, new float[]{mHue, mSat, mVal}));				
  }
  
  invalidate();
}

代码示例来源:origin: org.arakhne.afc.ui/vector-android

@Override
public float[] getHSB() {
  float[] t = new float[3];
  android.graphics.Color.RGBToHSV(getRed(), getGreen(), getBlue(), t);
  return t;
}

代码示例来源:origin: org.arakhne.afc.ui/vector-android

@Override
public float getSaturation() {
  float[] t = new float[3];
  android.graphics.Color.RGBToHSV(getRed(), getGreen(), getBlue(), t);
  return t[1];
}

代码示例来源:origin: org.arakhne.afc.ui/vector-android

@Override
public float getHue() {
  float[] t = new float[3];
  android.graphics.Color.RGBToHSV(getRed(), getGreen(), getBlue(), t);
  return t[0];
}

代码示例来源:origin: org.arakhne.afc.ui/vector-android

@Override
public float getBrightness() {
  float[] t = new float[3];
  android.graphics.Color.RGBToHSV(getRed(), getGreen(), getBlue(), t);
  return t[2];
}

相关文章