// 取色器
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>取色器</title><style>.canvas-box {position: relative;width: 497px;height: 351px;margin: auto;}canvas {position: absolute;top: 0;left: 0;cursor: pointer;}.result {width: 300px;margin: auto;margin-top: 40px;display: flex;}.color {display: inline-block;height: 20px;width: 20px;margin-right: 20px;}</style>
</head>
<body><div class="canvas-box"><img id ='img' src="https://img1.baidu.com/it/u=1148520648,1390077994&fm=26&fmt=auto&gp=0.jpg" alt=""><canvas width="497" height="351" id='myCanvas'></canvas></div><div class="result">color:<span class="color"></span><input type="text"></div>
</body>
<script>var c = document.getElementById("myCanvas");var ctx=c.getContext("2d");var img = document.getElementById("img");var color = document.getElementsByClassName("color");var Input = document.getElementsByTagName("input");// 默认色黑色color[0].style.background = '#000';Input[0].value = 'rgba(0,0,0,1)';img.crossOrigin = '';img.onload = function(){// 图片加载完成在绘制图片ctx.drawImage(img,0,0);}function draw (x,y){// 取一像素的值const { data }  = ctx.getImageData(x,y,1,1);const R = data[0];const G = data[1];const B = data[2];const A = data[3] / 255;const rgba = `rgba(${R},${G},${B},${A})`;console.log(rgba)color[0].style.background = rgba;Input[0].value = rgba;console.log(Input[0].value)}c.onmousedown = function(e){const {x,y} = {x:e.offsetX,y:e.offsetY};draw(x,y);c.onmousemove = function(e){const {x,y} = {x:e.offsetX,y:e.offsetY};draw(x,y);}}c.onmouseup = function(){c.onmousemove = null;}// 实现点击input框复制取rgba数据Input[0].onclick = function(e){Input[0].select();}
</script>
</html>

用到的主要知识:

  1. canvas的getImageData获取canvas上面的像素信息
  2. 获取鼠标相对于容器边框的坐标offsetX,offsetY,获取鼠标左边周边一像素的色值(对于坐标不太熟悉的朋友,可以移步获取鼠标坐标常用方法和获取元素宽高以及距离定位父元素距离)

对于比较基础的知识,这里我就不赘述了,如果想要学习的,那么可以看html5 canvas

取色器最终效果:

canvas实现取色器相关推荐

  1. canvas像素操作 取色器 写入像素数据 缩放和反锯齿 保存图片

    博客简介 HTML5中的canvas允许我们直接对像素进行操作,我们可以通过ImageData对象操纵像素数据,读取或将数据数组写入该对象中.这里还会介绍如何控制图像使其平滑(反锯齿)以及如何从Can ...

  2. android 自定义取色器,【Android自定义View】仿Photoshop取色器ColorPicker(二)

    ColorPicker 一款仿Photoshop取色器的Android版取色器. 前言 上一篇已经简单介绍了ColorPicker的项目结构以及两种颜色空间,接下来我们详细解析一下ColorPicke ...

  3. 【Android】自定义控件-颜色选择器/取色器

    第二篇博客,继续加油.有好东西我会陆续分享出来的! ColorPickerView 是之前一个智能家居项目实战中所写的自定义控件,主要用于取得RGB 0~255范围的值,然后转换成十六进制0~FF的值 ...

  4. 浏览器插件FeHelper学习:页面取色器

    前言 对于大部分前端开发者来说,FeHelper插件应该很多人都用过.我最常用的就是页面取色工具,但是有个小小的不足,获取到的颜色是16进制的,当需要rgb格式时还需要借助FeHelper提供的颜色转 ...

  5. 10款屏幕取色器/颜色拾取工具软件介绍及下载地址[转]

    10款屏幕取色器/颜色拾取工具软件介绍及下载地址(附截图) 2009年12月07日 14:13 在做网页设计和程序界面的时候,看到比较喜欢的图片颜色,总是要拾取下来应用到自己的网页或图片的颜色中,但是 ...

  6. Android --- 新版本取色器吸管工具点击无效,没反应

    今天更新的 Android Studio ,在使用取色器吸管取色的时候发现点击没反应,发现不是没反应,而是很久之后才会有反应,我也不知什么情况,到网上搜索解决办法. 解决方法: 双击 shift,然后 ...

  7. android 取色器_老板夸我PPT配色高级,以为我学过设计,其实我都是从Logo取色

    我们都知道用好一个 logo,可以做出一套比较简洁而且精致的 PPT 模板. 为了让这个页面看起来更丰富一些,我们选取的颜色是 logo 的主色调: 虽然一直在强调我们要从 logo 中取色,但是在进 ...

  8. windows 取色器_这款 Windows 10 官方「外挂」让你取色更便捷

    去年微软针对 Windows 10 系统重启了 PowerToys 工具,并且针对 Windows 10 系统特性推出了一系列的小工具来改善 Windows 10 的易用性. 时隔一年后的今天,这款工 ...

  9. colorpix取色小工具_Python版的取色器

    大家好,好久没有更新,希望不要把我忘了啊,前几天工作中遇到一个小困难,我想去取一个图片某个区域的色值需要用一下,但是真的不知用什么工具,然后把图片发给同事,用他电脑上的PS查看了一下,感觉工作中没有一 ...

最新文章

  1. Cash Shuffle的BCH在稳步测试中前进
  2. 武汉区块链软件技术公司:区块链如何化解溯源的短板
  3. android加一减一控件,Android的步进器(增加/减少值)控件?
  4. UVa 12657 - Boxes in a Line ( 双向链表 )
  5. linux多进程编程(一)
  6. c语言编写的贪吃蛇代码,刚学C语言,想写一个贪吃蛇的代码
  7. 文本本地化的时候,提交给待翻译的人员的文件命名格式
  8. 投入工作与生活幸福,并非简单对立
  9. c++ vector向量
  10. java txt转换excel_Java实现将txt文件转成xls文件的方法
  11. 微信小程序2048小游戏(上)
  12. c语言中gotoxy,关于gotoxy的问题....
  13. EFCore对数据库增删改查
  14. 机器学习与控制:ADMM的ODE模型与基于Lyapunov的收敛分析
  15. Linux拨号上网后自动断开,Ubuntu 12.10 拨号上网及停用方法
  16. 电脑硬盘中毒了怎么办?u盘中毒数据丢失怎么恢复
  17. python可以直接用记事本_我的python只能用记事本打开保存的文本文件,为什么?...
  18. 聊天机器人,让你的营销变得更加简单
  19. 聚类方法:DBSCAN算法研究(2)--matlab代码实现
  20. python实现http/https代理服务器

热门文章

  1. 海南省建设自由贸易岛对海南旅游发展影响的思考
  2. 音响人烧电脑 篇一:花费700元,我是如何升级到i7级别的NAS
  3. AutoCAD 2016 for Mac
  4. 大数据架构师在关注什么?
  5. 系统架构师(java)和大数据架构师
  6. 解除B站区域限制 油猴脚本
  7. 逆战之微信小程序全局配置
  8. msbuild 语法_MSBuild 命令行参考
  9. 一款随时随地查看餐厅室内装潢设计的app——迅捷CAD看图!
  10. 使用 vue2 制作一个知乎日报