将颜色转换为指定的颜色类型
Convert color to specified color type
我有颜色代码像0xff3a9bda, 0xff73bbf3
。我真的不知道这个颜色类型,因为我知道这些不是RGB, aRGB, HSB或HEX。
当我在web应用程序上工作时,我的问题是,我可以用JavaScript在RGB和HTML颜色代码中获得任何颜色的颜色代码,我想将此颜色转换为上述指定的颜色类型代码。
谁能给我一个主意或解决这个问题?你确定这不是RGBA吗?
0xff3a9bda
为rgba(255,58,155,0.85)
(RGBA)或rgba(58,155,218,1)
(ARGB)
你可以这样做转换:
var c = 0xff3a9bda;
var r = (c & (0xff << 24)) >>> 24;
var g = (c & (0xff << 16)) >>> 16;
var b = (c & (0xff << 8)) >>> 8;
var a = (c & 0xff) / 0xff;
var rgba = 'rgba(' + [r,g,b,a].join(',') + ')';
或者像这样:
var c = 0xff3a9bda;
var a = ((c & (0xff << 24)) >>> 24) / 0xff;
var r = (c & (0xff << 16)) >>> 16;
var g = (c & (0xff << 8)) >>> 8;
var b = c & 0xff;
var rgba = 'rgba(' + [r,g,b,a].join(',') + ')';
尝试: http://jsfiddle.net/gX6ds/1/
将#RRGGBB
转换为此格式:
var rgb = 'AABBCC';
var c = 0xff000000 + parseInt(rgb, 16);
alert('0x' + c.toString(16));
将R, G, B值转换为以下格式:
var R = 0xAA, G = 0xBB, B = 0xCC;
var c = 0xff000000 + (R << 16) + (G << 8) + B;
alert('0x' + c.toString(16));
没有必要把事情弄得太复杂。你在那里得到了一个32位的颜色值,这几乎肯定意味着你有4个颜色分量(R, G, B, a),每个分量8位。如果格式不是ARGB,那么它可能是RGBA,但这将取决于您的计算。通过试错来做到这一点当然很简单。
在任何情况下,一旦您知道哪些位代表哪些颜色组件,您所需要做的就是提取出R, G和B(参见arnaud576875的答案),然后像#<R><G><B>
一样将它们连接在一起以获得HTML颜色代码。
然后你取你的A组件,并将其设置为你想要应用这种颜色的任何元素的opacity
。如:
#coloredElem {
color: #<R><G><B>;
opacity: <A / 255.0>;
}
相关文章:
- 如何在googlemapapiv3中更改每种类型的地图标记颜色
- 输入类型按钮在按下时更改颜色
- 根据类型更改 jstree 节点文本颜色
- 第n个子项和第n类型的行颜色交替
- 根据用户类型更改输入框文本的颜色
- jQuery 基于事件类型的单元格的日期选取器背景颜色
- HTML5 输入类型颜色在通过 js 创建时不显示值
- 根据数据类型动态为Highcharts中的特定数据分配颜色
- 在点击时更改输入类型颜色
- 在html5中输入具有随机值的颜色类型
- 如何从输入类型=颜色返回颜色
- 未捕获的类型错误: 无法设置未定义的属性“背景颜色”
- JavaScript在IE中没有改变显示类型或颜色
- Javascript输入类型=“;颜色“;表单验证
- 对于所有的链接,添加css来切换颜色的链接基于Post类型使用JS或PHP - Wordpress
- 如何排序教科书的类型,颜色代码,或分类在bookweb使用html, Javascript, CSS或其他
- 将颜色转换为指定的颜色类型
- 邮件类型输入:如果邮件错误或正确,动态改变按钮的颜色/文本
- 如果第一个下拉菜单用户只选择最喜欢的颜色蓝色或红色,我将如何选择宠物类型
- 如何根据标记类型设置不同颜色的标记,以及如何确定它们的坐标?我使用openlayers.org库