Javascript颜色rgb与16进制转换代码

Javascript实现颜色rgb与16进制转换的方法。分享给大家供大家参考。具体如下:

Color(12,34,56); Color("#fff") Color("#defdcd")

//颜色转换 var Color = function() {   if (!(this instanceof Color)) {    var color = new Color();    color._init.apply(color, arguments);    return color;   }   if (arguments.length) {    this._init.apply(this, arguments);   } } //设置get,set方法 var methods = ["red", "green", "blue", "colorValue"]; var defineSetGetMethod = function(fn, methods) {   var fnPrototype = fn.prototype;   for (var i = 0; i < methods.length; i++) {    var methodName = methods[i].charAt(0).toLocaleUpperCase() + methods[i].substring(1);    fn.prototype[‘set‘ + methodName] = new Function("value", "this." + methods[i] + "= value;");    fn.prototype[‘get‘ + methodName] = new Function("return this." + methods[i] + ";");    fn.prototype[‘toString‘] = new Function(‘return "rgb("+this.red+","+this.green+","+this.blue+")";‘);   } }; defineSetGetMethod(Color, methods); //扩展函数的实例方法 var extend = function(fn, option) {   var fnPrototype = fn.prototype;   for (var i in option) {    fnPrototype[i] = option[i];   } }; extend(Color, {   _init : function() {    if (arguments.length == 3) {     this.red = arguments[0];     this.green = arguments[1];     this.blue = arguments[2];     this.getColorValue();    } else {     var colorValue = arguments[0].replace(/^\#{1}/, "");     if (colorValue.length == 3) {      colorValue = colorValue.replace(/(.)/g, ‘$1$1‘);     }     this.red = parseInt(‘0x‘ + colorValue.substring(0, 2), 16);     this.green = parseInt(‘0x‘ + colorValue.substring(2, 4), 16);     this.blue = parseInt(‘0x‘ + colorValue.substring(4), 16);     this.colorValue = "#" + colorValue;    }   },   getColorValue : function() {    if (this.colorValue) {     return this.colorValue;    }    var hR = this.red.toString(16);    var hG = this.green.toString(16);    var hB = this.blue.toString(16);    return this.colorValue = "#" + (this.red < 16 ? ("0" + hR) : hR) + (this.green < 16 ? ("0" + hG) : hG) + (this.blue < 16 ? ("0" + hB) : hB);   } });

codego.net节选代码

时间: 2024-10-13 14:36:02

Javascript颜色rgb与16进制转换代码的相关文章

JS-011-颜色进制转换(RGB转16进制;16进制转RGB)

在网页开发的时候,经常需要进行颜色设置,因而经常需要遇到进行颜色进制转换的问题,例如:RGB转16进制:16进制转RGB),前几天在测试的时候,发现网站的颜色进制转换某类16进制颜色(例如:#000080,#FA08FA)转换时总是提示颜色非法,看了一下 js 源码,发现其进制转换的方法是错误的.找了一下度娘和谷大爷,最终写了一个颜色转换的小方法,源码如下所示: String.prototype.colorHex2Rgb = function(){ var reg = /^#([0-9a-fA-

RGB与16进制色互转

点击进入新版 <前端在线工具站> CSS, JavaScript 压缩YUI compressor, JSPacker...HTML特殊符号对照表PNG,GIF,JPG... Base64HTML JS互转URL编码?解码JSON美化.格式化RGB与16进制互转在线编辑运行代码UTF-8  与中文互转 前端开发QQ群 1群:108827104(1000人群) 2群:165509577(1000人群) 3群:40961188(2000人群) 4群:159477439(1000人群) 5群:153

java 16进制转换10进制

public static String toHexString2(byte[] b) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < b.length; ++i) { buffer.append(toHexString2(b[i])); } return buffer.toString(); } public static String toHexString2(byte b) { char[] buffer =

Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换

public static void main(String[] args) { int i = 10; System.out.println("***********10进制转换2进制.8进制.16进制************"); System.out.println(Integer.toBinaryString(i)); // 10转换2进制 System.out.println(Integer.toOctalString(i)); // 10转换8进制 System.out.p

java byte 16进制转换

整型转16进制: int devIdInt = Integer.parseInt(devId); String devIdString = Integer.toHexString(devIdInt); 16进制转为字节: byte devBin = (byte) Integer.parseInt(devIdString, 16); byte devBin =Integer.valueOf(devIdString, 16).byteValue(); byte devBin =Byte.parseB

jstack:将Process Explorer中看到的进程ID做16进制转换,到ThreadDump中加上0x 前缀即能找到对应线程(转)

原文链接:http://www.iteye.com/topic/1133941 症状: 使用Eclipse win 64位版本,indigo及kepler都重现了,使用tomcat 6.0.39,jdk1.6.u45及1.7u45均尝试了,也重现. 重现步骤很简单,使用debug模式启动时较容易出来,debug启动tomcat,(我的是webapp)然后在页面上随便点点即发现eclipse僵死,且任何从浏览器发出的请求都卡住不能被接收执行. 1.然后从任务管理器直接杀掉eclipse对应的jav

从16进制转换成汉字

/// <summary> /// 从16进制转换成汉字 /// </summary> /// <param name="hex"></param> /// <returns></returns> public static string GetChsFromHex(string hex) { if (hex == null) throw new ArgumentNullException("hex&qu

蓝桥杯 16进制转换8进制

蓝桥杯 16进制转换8进制 我表示我自己太渣渣了,总是超时,通不过测试. 题目 问题描述 给定n个十六进制正整数,输出它们对应的八进制数.输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由0~9.大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000.输出格式 输出n行,每行为输入对应的八进制正整数.注意 输入的十六进制数不会有前导0,比如012A. 输出的八进制数也不能有前导0.样例输入239123ABC样例输出7144

snip_进制转换代码段

10进制转成16进制. /* 程序:10进制转16进制的C语言实现 描述: 关键: 获得余 获得整 整为零 则退出 */ #include<stdio.h> #define N 10 #define k 16 void tranDemi2Hex(int num) { int arr[N],i; for (i=0;i <N;i++) //限制最大的转换位数. { arr[i]=num%k; //$KEY$ num=num/k; if (num==0) break; } printf(&qu