`
80htm
  • 浏览: 4558 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在线取色器(ColorPicker)的制作方式

 
阅读更多

Canvas制作取色板
在线效果:查看

附件是源代码,如果需要打开但不能上网,请手动修改Jquery等库


步骤:
1、首先制作一张取色板,作为img标签内容。可以使用PS制作。这里介绍使用html5的canvas来制作
制作后的canvas可以保存为图片。
var pixel = 4;
var canvas = document.getElementById("color_container");
var cxt=canvas.getContext("2d");
for(j=0; j<250; j++){
    if(j%pixel == 0){
        for(i=0; i<360; i++){
            if(i%pixel == 0){
                var s = getHSL(i, j);
                cxt.fillStyle= s;
                cxt.fillRect(i,j,4,4);
            }
        }
    }
}


2、监听img标签的onclick时间,根据鼠标位置换算出点击的颜色值
$("#color_container").click(function(a){
    var target = a.target;
    var parent = target.parentElement;
    var left = parent.offsetLeft;
    var top = parent.offsetTop;
    var i = a.clientX - left;
    var j = a.clientY - top;
    //获取偏移值i、j做后处理
});

3、RGB、HSL、hex(例如#FFFFFF)之间的转换
hex2rgb = function(hex){
    var h = [];
    h[0] = hex.substring(1,3);
    h[1] = hex.substring(3,5);
    h[2] = hex.substring(5,7);
    var r, g, b;
    r = parseInt(h[0], 16);
    g = parseInt(h[1], 16);
    b = parseInt(h[2], 16);
    return [r, g, b];
}

rgb2hex = function(r, g, b){
    r = r.toString(16);
    if(r.length == 1){
        r = "0" + r;
    }
    g = g.toString(16);
    if(g.length == 1){
        g = "0" + g;
    }
    b = b.toString(16);
    if(b.length == 1){
        b = "0" + b;
    }
    return "#" + r + g + b;
}

hsl2rgb = function(h, s, l){
    var r, g, b;
    if(s == 0){
        r = g = b = 255;
    }
    else{
        var q = (l<0.5)?(l * (1.0+s)):(l+s - (l*s));
        var p = (2.0 * l) - q;
        var Hk = h/360.0;
        var T = [];
        T[0] = Hk + 0.3333333;
        T[1] = Hk;
        T[2] = Hk - 0.3333333;
        for(var i=0; i<3; i++){
            if(T[i] < 0) T[i] += 1.0;
            if(T[i] > 1) T[i] -= 1.0;
            if((T[i]*6) < 1){
                T[i] = p + ((q-p)*6.0*T[i]);
            }
            else if((T[i]*2.0) < 1){
                T[i] = q;
            }
            else if((T[i]*3.0) < 2){
                T[i] = p + (q-p) * ((2.0/3.0) - T[i]) * 6.0;
            }
            else{
                T[i] = p;
            }
        }
        r = T[0]*255.0; 
        g = T[1]*255.0; 
        b = T[2]*255.0;
       
        r = Math.round(r);
        b = Math.round(b);
        g = Math.round(g);
       
        r = (r>255)? 255 : ((r<0)?0 : r);
        g = (g>255)? 255 : ((g<0)?0 : g);
        b = (b>255)? 255 : ((b<0)?0 : b);
    }
   
    return [r, g, b];
}

rgb2hsl = function(r, g, b){
    r = r/255;
    g = g/255;
    b = b/255;
    var max, min, diff, r_dist, g_dist, b_dist;
    max = Math.max(Math.max(r, g), b);
    min = Math.min(Math.min(r, g), b);
    diff = max - min;
    var h, s, l;
    l = (max + min)/2;
    if(diff == 0){
        s = 0;
        l = 0;
    }
    else if(l < 0.5){
        s = diff/(max + min);
    }
    else{
        s = diff/(2 - max - min);
    }
    r_dist = (max - r)/diff;
    g_dist = (max - g)/diff;
    b_dist = (max - b)/diff;
    if(r == max){
        h = b_dist - g_dist;
    }
    else if(g == max){
        h = 2 + r_dist - b_dist;
    }
    else {
        h = 4 + g_dist - r_dist;
    }
   
    h = h * 60;
    h = Math.round(h);
    if(h < 0){
        h += 360;
    }
    else if(h >= 360){
        h -= 360;
    }
    return [h, s, l];
}

 

分享到:
评论

相关推荐

    WPF制作的取色器ColorPicker

    【WPF制作的取色器ColorPicker】是一个基于Windows Presentation Foundation (WPF) 的应用程序,专为用户设计和实现了一种便捷的颜色选取功能。WPF是Microsoft推出的一种用于构建Windows桌面应用程序的技术,它提供...

    实用工具:三款取色小工具ColorPicker拾色器

    以下将详细介绍这三款取色小工具:屏幕取色.exe、取色精灵.exe以及Playcolor.exe。 1. **屏幕取色.exe**: 这是一款简单易用的屏幕取色工具,它允许用户直接从屏幕上选取任何位置的颜色代码。通过点击或拖动鼠标,...

    ColorPicker, MAC下取色工具

    ColorPicker是一个专为Mac用户设计的取色应用,它可以方便地集成到日常的工作流程中,尤其对于网页页面制作来说,是不可或缺的辅助工具。通过ColorPicker,用户不仅能够捕捉到屏幕上任何像素的颜色,还能将其转化为...

    网页设计必备工具取色器

    取色器软件,如"ColorPicker_PConline.exe",通常具有直观的用户界面,允许用户通过鼠标点击屏幕上的任何位置来获取当前像素的颜色值。它不仅可以显示RGB(红、绿、蓝)三原色的数值,还可以将其转换为16进制...

    开发工具取色器工具

    ColorPicker.exe是这个取色器工具的可执行文件,它包含了所有必要的功能代码,运行后可以在用户的电脑上启动取色器程序。而ColorPicker.INI则是一个配置文件,用于存储用户的设置和偏好,比如默认的颜色格式、历史...

    截图工具 和 两种 取色器

    例如,ColorPicker 和 Chrome 开发者工具内置的取色器都是设计师和开发者常使用的工具。它们不仅显示所选颜色的数值,还可以帮助用户找到相近的颜色或者进行颜色对比,确保网页颜色的一致性和可访问性。 除了基本的...

    桌面快速取色器实用性强大

    标题中的“桌面快速取色器”是一款专为电脑用户设计的工具,它的主要功能是帮助用户快速、准确地获取屏幕上任何位置的颜色值。在设计、编程、网页制作、图像处理等工作中,这样的工具非常实用,可以极大地提高工作...

    ColorPicker

    《ColorPicker:高效便捷的屏幕取色神器》 在日常的图形设计、编程或网页制作工作中,精确选取屏幕上的颜色是一项必不可少的任务。ColorPicker就是这样一款高效实用的屏幕取色工具,它能帮助用户轻松获取屏幕上的...

    屏幕取色小工具

    2. **操作流程**:用户只需运行名为`ColorPicker.exe`的程序,将光标移动到屏幕上想要取色的位置,点击或按下预设快捷键即可获取当前像素的颜色值。工具会即时显示选取颜色的10进制和16进制代码,便于用户复制和使用...

    取色器 1.0.0.0 动态获取颜色的软件.rar

    《取色器1.0.0.0:动态获取颜色的高效工具》 在数字设计、编程、网页制作以及各种视觉艺术创作中,颜色选择是一个至关重要的环节。精确地选取和应用颜色对于作品的整体视觉效果有着决定性的影响。取色器软件就是专...

    屏幕颜色选择器 1.4.0 ColorPicker

    1. 实时取色:用户只需将颜色选择器的光标移动到屏幕上的任何位置,就能即时显示该位置的颜色代码。 2. 多种颜色模式切换:软件提供RGB、HEX、CMYK等多种颜色代码格式供用户选择,满足不同需求。 3. 颜色历史记录:...

    截图取色

    4. 文档制作:在制作PPT、报告等文档时,有时需要与已有的图像或品牌色彩保持一致,截图取色可以快速找到合适的颜色。 三、常见工具 1. Snipping Tool(Windows系统自带):Windows操作系统内置的截图工具,提供了...

    博客静态网页制作

    本人学习敲打的第一个网页,简单的博客前端静态网页,可供初学者参考,代码简单易懂,根据已设计好的UI图,进行百分百的还原UI图,编译器SublimeText3,取色器ColorPicker,尺寸测量器FSCapture。

    topicActive:微信专题活动后台制作以及手机端滑动框架

    topicActive 微信专题活动后台制作和移动端滑动框架 目录结构 |-css ...|-js 源码 |-app 业务逻辑代码 ... |-colorpicker.js 颜色取色器 |-menu.js 上下文菜单模块 |-range.js 滑动模块写成jq插件

    color-picker:最少的javascript颜色选择器组件

    Vanila-js中的最小5KB颜色选择器 :warning: 仅在现代浏览器中受支持 精心制作,尽可能轻巧 鼠标滚轮支持的测距器 UX最小,屏幕占用最小 支持的颜色格式: , hexa , rgba , hsla 不包括定位引擎。 使用您自己的...

    安卓开发以及软件开发所用到的小工具类

    3. **取色工具**: - 开发者在设计或调整UI时,可能需要精确地知道颜色代码。例如,`ColorPicker`这样的应用可以帮助从屏幕上选取颜色,并提供RGB、HEX等不同格式的颜色值。 - 在电脑上,`Adobe Color`网站或相应...

Global site tag (gtag.js) - Google Analytics