java如何获得相反的颜色_javascript – 如何根据当前颜色生成相反的颜色?
更新:
GitHub上的生产就绪代码.
我就是这样做的:
>将HEX转换为RGB
>反转R,G和B组件
>将每个组件转换回HEX
>用零和输出填充每个组件.
function invertColor(hex) {
if (hex.indexOf('#') === 0) {
hex = hex.slice(1);
}
// convert 3-digit hex to 6-digits.
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
if (hex.length !== 6) {
throw new Error('Invalid HEX color.');
}
// invert color components
var r = (255 - parseInt(hex.slice(0, 2), 16)).toString(16),
g = (255 - parseInt(hex.slice(2, 4), 16)).toString(16),
b = (255 - parseInt(hex.slice(4, 6), 16)).toString(16);
// pad each with zeros and return
return '#' + padZero(r) + padZero(g) + padZero(b);
}
function padZero(str, len) {
len = len || 2;
var zeros = new Array(len).join('0');
return (zeros + str).slice(-len);
}
示例输出:
高级版:
这有一个bw选项,决定是否反转为黑色或白色;所以你会得到更多的对比度,这对人眼来说通常更好.
function invertColor(hex, bw) {
if (hex.indexOf('#') === 0) {
hex = hex.slice(1);
}
// convert 3-digit hex to 6-digits.
if (hex.length === 3) {
hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];
}
if (hex.length !== 6) {
throw new Error('Invalid HEX color.');
}
var r = parseInt(hex.slice(0, 2), 16),
g = parseInt(hex.slice(2, 4), 16),
b = parseInt(hex.slice(4, 6), 16);
if (bw) {
// http://stackoverflow.com/a/3943023/112731
return (r * 0.299 + g * 0.587 + b * 0.114) > 186
? '#000000'
: '#FFFFFF';
}
// invert color components
r = (255 - r).toString(16);
g = (255 - g).toString(16);
b = (255 - b).toString(16);
// pad each with zeros and return
return "#" + padZero(r) + padZero(g) + padZero(b);
}
示例输出:
java如何获得相反的颜色_javascript – 如何根据当前颜色生成相反的颜色?相关推荐
- java button随机颜色_Javascript点击按钮随机改变数字与其颜色
先来看看效果图 实例代码 #box { margin: 100px auto; width: 200px; height: 150px; line-height: 150px; letter-spac ...
- java字体颜色编程_java Applet 程序设计讲解2 字体,颜色的使用
java Applet 程序设计讲解2 字体,颜色的使用 关键词: 字体 颜色 图形界面输出用到的字体,颜色的使用 1.字体类 (Font类) 构造方法: Font(String fontnam ...
- python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
python使用matplotlib可视化.使用英文单次或者缩写指定使用的颜色.使用16进制的RGB字符串指定颜色.使用RGB或者RGBA数字元组指定颜色 目录
- R语言ggplot2可视化配置图例(legend)标签色彩的升序或者反序(reverse)实战:ggplot2可视化默认图例标签色彩(升序,颜色越来越深)、可视化配置图例标签颜色反序(颜色越来越浅)
R语言ggplot2可视化配置图例(legend)标签色彩的升序或者反序(reverse)实战:ggplot2可视化默认图例标签色彩(升序,颜色越来越深).可视化配置图例标签颜色反序(颜色越来越浅) ...
- python中线条颜色_python中plot用法——线条、点、颜色
plot画图时可以设定线条参数.包括:颜色.线型.标记风格. 1)控制颜色 颜色之间的对应关系为 b---blue c---cyan g---green k----black m---ma ...
- python写excel标记文字颜色_python3使用xlwt时写入文档字体颜色和边框样式
转自:https://www.cnblogs.com/xiaodingdong/p/8012282.html 可借鉴的网址:https://www.programcreek.com/python/ex ...
- linux vi行尾总是显示颜色,【转载】Linux 下使用 vi 没有颜色的解决办法
vi 是没有颜色的,vim 是有颜色的. 我们可以通过 rpm -qa |grep vim 看看系统中是否安装了下面 3 个 rpm 包,如果有就是安装了 vim . [root@Betty ~]# ...
- el-table 行背景颜色_使用HTML添加表格4(行颜色与表格嵌套)——零基础自学网页制作
行颜色设置的简便方法 昨天我们在<使用HTML添加表格3(间距与颜色)--零基础自学网页制作>(目录在结尾)中学习了设置单元格以及其中内容的空间间距和背景颜色. 其中添加列向单元格背景颜色 ...
- 颜色矩特征提取matlab,求matlab彩色图片的颜色特征提取算法的代码,和纹理特征提取的? 爱问知识人...
其实学数字图像处理,关键的不是源代码(和一般编程还是有区别的,这个是经验之谈,其实一般博导未必会编程,但是你和他说说你的方法,他一般都能切中要害),而是你能理解基于概念及适用场所. 基于颜色.纹理.形 ...
- goland设置代码颜色主题(同Sublime Text 3的代码颜色一样)
原文:idea设置代码颜色主题(同Sublime Text 3的代码颜色一样) 1.下载主题的网址:http://color-themes.com,主题种类多,总有适合你的主题.在这个网址下载的主题是 ...
最新文章
- 图灵访谈:柳泽大辅谈如何想出好创意
- 第十六届智能车竞赛MCU这么多,该怎么办?别慌,RT-Thread来帮忙。
- java.awt.Graphics2D绘制流程图基本元素
- Java模块化之路 —— OSGI介绍
- pdf百度云下载 python编程 从数据分析到数据科学_python零基础入门教程,不同方向的,这很重要...
- linux删除目录排除,Linux中移动,复制,删除,打包排除某个目录或文件
- eclipse项目中的.settings .project .classpath 个人见解
- 【ARM】Tiny4412裸机编程之GPIO简介
- VC2010下Qt5的中文乱码问题
- [蓝桥杯][2013年第四届真题]大臣的旅费(树的直径)
- JQuery学习记录——DOM的加载
- CSS进阶(十)position:relative
- 2022年10月24日程序员节日快乐
- ArcEngine代码 两规冲突检测
- 完美平台反复正在连接至服务器,完美世界无法连接服务器是什么原因
- Problem A: 零起点学算法93——矩阵转置
- 【手把手制作三阶魔方模拟器】用MATLAB让你的魔方动起来
- 配置JDK / JAVA
- 从阅文合同风波,看IP源头与网文产业的下一站
- javascript对json的处理最佳方法
热门文章
- 表单内如何直接贴图而不用上传图片_表单如何添加图片?
- echo off备份mysql_windows下备份Linux服务器上的MySQL
- mysql主从复制不同步案例_Mysql主从不同步问题处理案例
- 解决bbb无法加载uImage问题
- 16进制字符串转化为10进制数
- python库读取cif文件_Pymatgen读/写各种文件,pymatgen,读写
- 固态硬盘 linux 文件系统,SSD是否需要使用特别的文件系统?
- MySQL——基本配置
- mysql的每隔1分钟定时_mysql定时任务
- 【转】如何用好SVN的Branch