如何将RGB格式的颜色转换为Hex格式,反之亦然?
例如,转换'#0080C0'为(0, 128, 192).
这是我正在努力以编程方式使特定量的十六进制颜色变亮或变暗的功能.只需输入一个字符串就像"3F6D2A"color(col)和一个base10整数(amt)一样,可以减轻或变暗.要变暗,传入负数(即-20).
我这样做的原因是因为我发现的所有解决方案,到目前为止,它们似乎使问题过于复杂.而且我觉得只需几行代码即可完成.如果您发现任何问题,请告诉我,或者进行任何调整以使其加速.
function LightenDarkenColor(col,amt) {
col = parseInt(col,16);
return (((col & 0x0000FF) + amt) | ((((col>> 8) & 0x00FF) + amt) << 8) | (((col >> 16) + amt) << 16)).toString(16);
}
Run Code Online (Sandbox Code Playgroud)
对于开发使用,这里是一个更容易阅读的版本:
function LightenDarkenColor(col,amt) {
var num = parseInt(col,16);
var r = (num >> 16) + amt;
var b = ((num >> 8) & 0x00FF) + amt;
var g = (num & 0x0000FF) + amt;
var newColor = g | (b << 8) …Run Code Online (Sandbox Code Playgroud) 我正在寻找一种工具或算法来将HSL颜色转换为RGB.在我看来,HSL并没有被广泛使用,所以我没有太多运气寻找转换器.
我正在寻找从RGB到HSV的色彩空间转换器,特别是对于两个色彩空间的0到255范围.
我正在将Color类作为c ++中非常基本的图形API的一部分.所以我决定看一下微软的.NET框架,发现他们的Color类有HSB的功能.
然后我开始研究,以确定我是否应该在课堂上提供HSB,HSL或HSV或所有这些.
所以,我有3个关于HSB,HSL,HSV的问题:
HSB与HSL相同吗?
如果没有,为什么没有HSBL甚至HSBLV?
我发现有很多不同的计算这些值的方法,有人能告诉我最快的吗?
有没有人知道javascript中将RGB颜色转换为HSV颜色格式的函数?
(或jQuery)
我在http://www.mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript上找到了这个RGB到HSL脚本.我找不到任何其他小的体面的.问题是这段代码甚至不起作用.有谁知道为什么?(我不知道一点颜色数学,但也许它正在返回补充?)
function rgbToHsl(r, g, b){
r /= 255, g /= 255, b /= 255;
var max = Math.max(r, g, b), min = Math.min(r, g, b);
var h, s, l = (max + min) / 2;
if(max == min){
h = s = 0; // achromatic
}else{
var d = max - min;
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
switch(max){
case r: h = (g - …Run Code Online (Sandbox Code Playgroud) 我可以将HSB颜色转换为HSL吗?
Photoshop在其颜色选择器中显示HSB颜色.HSL颜色可以在CSS中使用.
我试过这个JS:
function hsb2hsl(h, s, b) {
return {
h: h,
s: s,
l: b-s/2
}
}
而hsb2hsl(0, 100, 50).l == 0不是25
更新:如果不转换HSB→RGB→HSL,我可以这样做吗?
我正在尝试创建一个壁纸,并在"android.graphics.color"类中使用HSV转换.当我意识到将具有指定色调(0..360)的创建的HSV颜色转换为rgb颜色(整数)并且将后转换为HSV颜色不会导致相同的色调时,我感到非常惊讶.这是我的代码:
int c = Color.HSVToColor(new float[] { 100f, 1, 1 });
float[] f = new float[3];
Color.colorToHSV(c, f);
alert(f[0]);
Run Code Online (Sandbox Code Playgroud)
我从100度的色调开始,结果是99.76471.我想知道为什么(在我看来)存在相对较大的不准确性.
但更大的问题是,当您再次将该值放入代码中时,新结果会再次降低.
int c = Color.HSVToColor(new float[] { 99.76471f, 1, 1 });
float[] f = new float[3];
Color.colorToHSV(c, f);
alert(f[0]);
Run Code Online (Sandbox Code Playgroud)
如果我从99.76471开始,我得到99.52941.这对我来说是个问题.我在java中使用"java.awt.Color"类做了类似的事情,我没有遇到这些问题.不幸的是,我不能在android中使用这个类.
我需要一个颜色转换器从hsl转换为rgb和十六进制值.我会像这样做.我正在使用jquery和jquery ui range slider.这是我的代码:
$(function() {
$( "#hsl_hue_range" ).slider({
min: 0,
max: 100,
value: 0,
range: false,
animate:"slow",
orientation: "horizontal",
slide: function( event, ui ) {
var hsl_hue = ui.value;
}
});
});
$(function() {
$( "#hsl_saturation_range" ).slider({
min: 0,
max: 100,
value: 0,
range: false,
animate:"slow",
orientation: "horizontal",
slide: function( event, ui ) {
var hsl_saturation = ui.value;
}
});
});
$(function() {
$( "#hsl_light_range" ).slider({
min: 0,
max: 100,
value: 0,
range: false,
animate:"slow",
orientation: "horizontal", …Run Code Online (Sandbox Code Playgroud) 我正在尝试将1到16,777,215之间的数字转换为使用Javascript/jQuery在色谱中增量的任何颜色格式(RGB/HSL/HEX).
数字16,777,215是RGB(255,255,255)的总可能组合,其为32位颜色.
我最初认为使用toString(16)将值转换为十六进制值会在频谱中增加,但随着数字增加,它似乎通过不同的亮度值而不是闪烁.这种不受欢迎的行为的一个例子是http://jsfiddle.net/2z82auka/
var colour = 16777215;
window.setInterval(function(){
colour -= 1000;
$('body').css({background:'#' + colour.toString(16)});
}, 50);
Run Code Online (Sandbox Code Playgroud)
如何将1到16777215之间的值转换为下面显示的色谱上的颜色?

让我们假设我们有以下设置(下图),我希望表格有5个单元格,但我希望5个单元格具有从绿色到红色的动态颜色范围(1 =绿色,3 =黄色) ,5 =红色,等)
我可以使用的唯一技术是:CSS3/HTML5/Angular - 我可以使用任何有角度的lib
在excel中它的琐碎这样做,但由于我相当新的角度,我承认有点迷失.
~ Script
var arrayWith5Values = [1,2,3,4,5]
~
<table>
<tr>
<td ng-repeat='numericValue in arrayWith5Values'>
{{numericValue}}}
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
它基本上是这个问题的角度版本:根据Python HTML电子邮件中的单元格值和"基于单元格中的值的颜色单元格"从"低到高颜色阴影"着色HTML表格单元格
昨晚我一直在搜索StackOverflow,但是找不到答案.
这是一个例子(来自excel的截图)
