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】是一个基于Windows Presentation Foundation (WPF) 的应用程序,专为用户设计和实现了一种便捷的颜色选取功能。WPF是Microsoft推出的一种用于构建Windows桌面应用程序的技术,它提供...
以下将详细介绍这三款取色小工具:屏幕取色.exe、取色精灵.exe以及Playcolor.exe。 1. **屏幕取色.exe**: 这是一款简单易用的屏幕取色工具,它允许用户直接从屏幕上选取任何位置的颜色代码。通过点击或拖动鼠标,...
ColorPicker是一个专为Mac用户设计的取色应用,它可以方便地集成到日常的工作流程中,尤其对于网页页面制作来说,是不可或缺的辅助工具。通过ColorPicker,用户不仅能够捕捉到屏幕上任何像素的颜色,还能将其转化为...
取色器软件,如"ColorPicker_PConline.exe",通常具有直观的用户界面,允许用户通过鼠标点击屏幕上的任何位置来获取当前像素的颜色值。它不仅可以显示RGB(红、绿、蓝)三原色的数值,还可以将其转换为16进制...
ColorPicker.exe是这个取色器工具的可执行文件,它包含了所有必要的功能代码,运行后可以在用户的电脑上启动取色器程序。而ColorPicker.INI则是一个配置文件,用于存储用户的设置和偏好,比如默认的颜色格式、历史...
例如,ColorPicker 和 Chrome 开发者工具内置的取色器都是设计师和开发者常使用的工具。它们不仅显示所选颜色的数值,还可以帮助用户找到相近的颜色或者进行颜色对比,确保网页颜色的一致性和可访问性。 除了基本的...
标题中的“桌面快速取色器”是一款专为电脑用户设计的工具,它的主要功能是帮助用户快速、准确地获取屏幕上任何位置的颜色值。在设计、编程、网页制作、图像处理等工作中,这样的工具非常实用,可以极大地提高工作...
《ColorPicker:高效便捷的屏幕取色神器》 在日常的图形设计、编程或网页制作工作中,精确选取屏幕上的颜色是一项必不可少的任务。ColorPicker就是这样一款高效实用的屏幕取色工具,它能帮助用户轻松获取屏幕上的...
2. **操作流程**:用户只需运行名为`ColorPicker.exe`的程序,将光标移动到屏幕上想要取色的位置,点击或按下预设快捷键即可获取当前像素的颜色值。工具会即时显示选取颜色的10进制和16进制代码,便于用户复制和使用...
《取色器1.0.0.0:动态获取颜色的高效工具》 在数字设计、编程、网页制作以及各种视觉艺术创作中,颜色选择是一个至关重要的环节。精确地选取和应用颜色对于作品的整体视觉效果有着决定性的影响。取色器软件就是专...
1. 实时取色:用户只需将颜色选择器的光标移动到屏幕上的任何位置,就能即时显示该位置的颜色代码。 2. 多种颜色模式切换:软件提供RGB、HEX、CMYK等多种颜色代码格式供用户选择,满足不同需求。 3. 颜色历史记录:...
4. 文档制作:在制作PPT、报告等文档时,有时需要与已有的图像或品牌色彩保持一致,截图取色可以快速找到合适的颜色。 三、常见工具 1. Snipping Tool(Windows系统自带):Windows操作系统内置的截图工具,提供了...
本人学习敲打的第一个网页,简单的博客前端静态网页,可供初学者参考,代码简单易懂,根据已设计好的UI图,进行百分百的还原UI图,编译器SublimeText3,取色器ColorPicker,尺寸测量器FSCapture。
topicActive 微信专题活动后台制作和移动端滑动框架 目录结构 |-css ...|-js 源码 |-app 业务逻辑代码 ... |-colorpicker.js 颜色取色器 |-menu.js 上下文菜单模块 |-range.js 滑动模块写成jq插件
Vanila-js中的最小5KB颜色选择器 :warning: 仅在现代浏览器中受支持 精心制作,尽可能轻巧 鼠标滚轮支持的测距器 UX最小,屏幕占用最小 支持的颜色格式: , hexa , rgba , hsla 不包括定位引擎。 使用您自己的...
3. **取色工具**: - 开发者在设计或调整UI时,可能需要精确地知道颜色代码。例如,`ColorPicker`这样的应用可以帮助从屏幕上选取颜色,并提供RGB、HEX等不同格式的颜色值。 - 在电脑上,`Adobe Color`网站或相应...