javascript – 根据HEX背景获得白色/黑色
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 根据HEX背景获得白色/黑色,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1563字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 根据HEX背景获得白色/黑色](/upload/InfoBanner/zyjiaocheng/786/f05c0d05fbaa4f8dabe2c3e657e587b9.jpg)
我有这个Javascript函数,根据背景的给定HEX颜色获得正确的文本颜色(白色或黑色),效果很好:
// Ideal color
function getRGBComponents(color) {
var r = color.substring(1, 3),
g = color.substring(3, 5),
b = color.substring(5, 7);
return {
R: parseInt(r, 16),
G: parseInt(g, 16),
B: parseInt(b, 16)
};
}
function idealTextColor(bgColor) {
if (bgColor.length === 4) {
bgColor = '#' + bgColor[1] + bgColor[1] + bgColor[2] + bgColor[2] + bgColor[3] + bgColor;
}
var nThreshold = 105,
components = getRGBComponents(bgColor),
bgDelta = (components.R * 0.299) + (components.G * 0.587) + (components.B * 0.114);
return ((255 - bgDelta) < nThreshold) ? "#000000" : "#ffffff";
}
idealTextColor("#123123");
我把它转换为PHP:
// Ideal color
function getRGBComponents($color) {
$r = substr($color, 1, 3);
$g = substr($color, 3, 5);
$b = substr($color, 5, 7);
return Array(
"R" => intval($r, 16),
"G" => intval($g, 16),
"B" => intval($b, 16)
);
}
function idealTextColor($bgColor) {
if (strlen($bgColor) == 4) {
$bgColor = '#' . $bgColor[1] . $bgColor[1] . $bgColor[2] . $bgColor[2] . $bgColor[3] . $bgColor[3];
}
$nThreshold = 105;
$components = getRGBComponents($bgColor);
$bgDelta = ($components["R"] * 0.299) + ($components["G"] * 0.587) + ($components["B"] * 0.114);
if((255 - $bgDelta) < $nThreshold) {
return "#000000";
} else {
return "#FFFFFF";
}
}
idealTextColor("#123123");
它不起作用,它总是#00000作为颜色(FIDDLE).我该如何修复它再次起作用?或者也许某人有更好的功能来执行相同的任务?
解决方法:
$r = substr($color, 1, 2);
$g = substr($color, 3, 2);
$b = substr($color, 5, 2);
substr的第二个参数是length,而不是end index.
内容总结
以上是互联网集市为您收集整理的javascript – 根据HEX背景获得白色/黑色全部内容,希望文章能够帮你解决javascript – 根据HEX背景获得白色/黑色所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。