Dav*_*nce 1 html php jquery color-codes
我试图通过PHP或jQuery 来实现这个人在做什么.基本上我有一个十六进制颜色代码,比如#FF0000,它是红色的.如何找到这种颜色的深色或浅色十六进制颜色代码.
要清除:我想采用十六进制颜色代码(#FF0000),并找到该颜色代码更浅或更深色调的正确十六进制颜色代码.
可以用PHP或jQuery完成,我可以通过PHP改变颜色,因为服务器处理页面.
我不想使用第三方jQuery插件来实现这一点,但是如果它超级复杂的话,我会这样做.
当你说"更轻的版本"(或"更黑的版本")时,有很多可能性.举例来说,你可以采取#ff0000和具有253"黑暗的版本",从#010000到#fe0000.同样,你可以有253"较轻的版本",从#ff0101到#fffefe.所以你的问题定义不明确.
我将在这个答案中假设,"较轻的版本",你的意思是在颜色上涂上50%透明白色的结果,而在颜色上涂上"深色"的结果,但是黑色.
无论如何,您应该始终从十六进制代码中提取数字:
// assuming input of form "#RRGGBB"
$col = Array(
hexdec(substr($input,1,2)),
hexdec(substr($input,3,2)),
hexdec(substr($input,5,2))
);
Run Code Online (Sandbox Code Playgroud)
现在您已经拥有了它,您可以轻松应用"叠加层":
$darker = Array(
$col[0]/2,
$col[1]/2,
$col[2]/2
);
$lighter = Array(
255-(255-$col[0])/2,
255-(255-$col[1])/2,
255-(255-$col[2])/2
);
Run Code Online (Sandbox Code Playgroud)
然后将它们转换回十六进制代码是一件简单的事情:
$darker = "#".sprintf("%02X%02X%02X", $darker[0], $darker[1], $darker[2]);
$lighter = "#".sprintf("%02X%02X%02X", $lighter[0], $lighter[1], $lighter[2]);
Run Code Online (Sandbox Code Playgroud)
完成!