JavaScript 获得十六进制颜色的反色

在修改Chrome扩展 Speed Dial 2 的时候遇到一个问题,就是需要获得十六进制颜色的反色,稍微研究了一下,结果分享出来。

RGB转Hex:

function rgbToHex(r, g, b) {
	return (r < 16 ? "0" + r.toString(16).toUpperCase() : r.toString(16).toUpperCase()) + (g < 16 ? "0" + g.toString(16).toUpperCase() : g.toString(16).toUpperCase()) + (b < 16 ? "0" + b.toString(16).toUpperCase() : b.toString(16).toUpperCase());
}

Hex转RGB:

function hexToRgb(h) {
	var r = 0, g = 0, b = 0;
	r = parseInt(h[0],16)*16 + parseInt(h[1],16);
	g = parseInt(h[2],16)*16 + parseInt(h[3],16);
	b = parseInt(h[4],16)*16 + parseInt(h[5],16);
	return r + "," + g + "," + b;
}

Hex取反色:

function hexToReverse(h) {
	var r = 0, g = 0, b = 0;
	r = 255 - parseInt(h[0],16)*16 - parseInt(h[1],16);
	g = 255 - parseInt(h[2],16)*16 - parseInt(h[3],16);
	b = 255 - parseInt(h[4],16)*16 - parseInt(h[5],16);
	return (r < 16 ? "0" + r.toString(16).toUpperCase() : r.toString(16).toUpperCase()) + (g < 16 ? "0" + g.toString(16).toUpperCase() : g.toString(16).toUpperCase()) + (b < 16 ? "0" + b.toString(16).toUpperCase() : b.toString(16).toUpperCase());
}

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注

验证码已失效,请刷新验证码