Converting RGB to HEX fails
Converting RGB to HEX fails
遵循这个问题和许多其他问题,我试图将rgb值转换为十六进制值。
复制/粘贴最常用和接受的答案,我做了这个脚本
function componentToHex(c) {
var hex = c.toString(16);
return hex.length == 1 ? "0" + hex : hex;
}
function rgbToHex(rgb) {
var colors = rgb.split("(")
colors = colors[1].split(")")
colors = colors[0].split(",")
var r = 255 - parseInt(colors[0])
var g = 255 - parseInt(colors[1])
var b = 255 - parseInt(colors[2])
return componentToHex(r) + componentToHex(g) + componentToHex(b);
}
alert(rgbToHex("rgb(0, 51, 255)"))
结果:ffcc00
预期结果:
0033ff
为什么不工作?
直接使用parseInt
的结果,而不是255
减去值:
var r = parseInt(colors[0])
var g = parseInt(colors[1])
var b = parseInt(colors[2])
通过输出值与输入值互补的(而不是与等价的),您当前正在生成与完全相反的颜色。
不应该是255 - parseInt(colors[i])
,而应该是parseInt(colors[i])
。
在你当前的实现-如果红色是0,255 - 0 = 255,十六进制是FF
相关文章:
- Javascript dec to hex
- RGB 到 HEX JavaScript 函数在 Chrome 中工作,但不能在 Firefox 或 Safari 中工
- 将字符串编码为HEX
- json中javascript:hex的转义字符串
- 将jsondecoded字符串中的js-eescaped-char(或hex-char?)转换为php中的html实体
- 如何设置颜色'清除'转换为RGB或HEX
- jQuery POST to Node.JS Fails
- Javascript:String to date fails
- Safari 9 fails querySelectorAll with :invalid selector
- 尝试在 JavaScript 中将 Color Hex 作为参数传递
- XML HTTP GET Request Fails
- 如何在XMLHtppRequest中解码HEX
- 如何在NodeJS中生成HEX编码的CMA-CAES摘要
- Tumblr.js API -- require() fails
- 如何确定两种HEX颜色之间的差异
- Browserify fails
- 为什么我的Javascript SWITCH语句不能用于HEX颜色分配
- 子字符串,分割,字符串到数字和RGB到HEX
- jqGrid setRowData fails
- Converting RGB to HEX fails