【canvas】获取鼠标点击位置坐标的颜色信息

在项目当中,要实现某业务需求例如PS魔棒功能时,则需要获取点击坐标的颜色信息。
功能不复杂,代码也很少,一看便知~~

核心API为getImageData,传入4个参数,前2个为点击坐标xy,后2个都传1;表示以当前点击位置为起点,取宽为1、高为1的像素范围信息;

<html><style>.box {display: flex;}#c {border: 1px solid rgb(0, 0, 0);}.color {width: 40px;height: 40px;border: 1px solid red;}</style><body><div class="box"><canvas id="c" width="200" height="200"></canvas><div>点击的颜色:</div><div class="color"></div></div><script>c.width = 200;c.height = 200;var ctx = c.getContext("2d");var gr = ctx.createLinearGradient(0, 0, 300, 0);gr.addColorStop(0, "#fff");gr.addColorStop(0.15, "#8B00FF");gr.addColorStop(0.25, "#0000FF");gr.addColorStop(0.35, "#00FFFF");gr.addColorStop(0.45, "#00FF00");gr.addColorStop(0.55, "#FFFF00");gr.addColorStop(0.65, "#FF7F00");gr.addColorStop(0.75, "#FF0000");gr.addColorStop(1, "#fff");ctx.fillStyle = gr;ctx.fillRect(0, 0, 200, 200);c.onmousedown = function (e) {console.log(e.offsetX, e.offsetY);const imageData = ctx.getImageData(e.offsetX, e.offsetY, 1, 1);console.log(imageData);const pixelData = imageData.data;const color = `rgba(${pixelData[0]}, ${pixelData[1]}, ${pixelData[2]}, ${pixelData[3]})`;let el = document.getElementsByClassName('color')[0]el.style.background = color;};</script></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/674031.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python调用golang中函数方法

一、原因说明&#xff1a;由于simhash方法有多种实现方式&#xff0c;现python中simhash方法与golang中的不一样&#xff0c;需要两者代码生成结果保持一致&#xff0c;故采用python中的代码调用golang编译的so文件来实现。 环境配置&#xff1a;①Windows10系统要有gcc环境&a…

ADSelfService Plus发布离线MFA功能,强化远程工作安全性

ManageEngine ADSelfService Plus推出离线多因素身份验证&#xff0c;提升远程工作安全性确保通过先进的验证方法对企业数据进行授权访问&#xff0c;无论时间、地点或连接问题如何允许远程用户安全进行身份验证&#xff0c;即使未连接到认证服务器或互联网使用高度安全的基于T…

每周编辑精选|希尔贝壳语音数据集系列上线、中国学者建立乳腺癌预后评分系统 MIRS

&#x1f3ee;新春佳节&#xff0c;归程千里为团圆 &#x1f3ee;人间烟火&#xff0c;年味浓浓阖家欢 辞别玉兔&#xff0c;金龙迎春。明晚就是大年三十除夕夜了&#xff01;HyperAI超神经在这里提前祝大家新春快乐&#xff5e;龙行龘龘(d)&#xff01;本周 hyper.ai 官网上线…

Lua协程-coroutine

lua也有协程这个机制&#xff0c;用以完成非抢占式的多任务处理。 协程与线程 协程和线程类似&#xff0c;有自己的堆栈、局部变量、指令指针等等。但同时也有不一致的地方&#xff0c;其中最重要的地方在于多线程程序可以同一时间运行多个线程&#xff0c;而协程同一时间只能…

Vue前端框架--Vue工程项目问题总结{脚手架 Vue-cli}

Vue脚手架部署问题总结 我所遇到的一共两大问题 只有先执行npm install之后 才能run serve 否则会报错 vue-cli-serve不是内部或者外部的命令&#xff0c;也不是可运行的程序或者批处理文件的错误 1. 运行npm install会报错 2. 运行npm run serve报错 nodejs官网为 https://no…

C#中实现串口通讯和网口通讯(使用SerialPort和Socket类)

仅作自己学习使用 1 准备部份 串口通讯需要两个调试软件commix和Virtual Serial Port Driver&#xff0c;分别用于监视串口和创造虚拟串口。网口通讯需要一个网口调试助手&#xff0c;网络上有很多资源&#xff0c;我在这里采用的是微软商店中的TCP/UDP网络调试助手&#xff0…

【leetcode热题100】删除排序链表中的重复元素

难度&#xff1a; 简单通过率&#xff1a; 41.5%题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题目描述 给定一个排序链表&#xff0c;删除所有重复的元素&#xff0c;使得每个元素只出现一次。 示例 1: 输入: 1->1->…

cleanmymacX和腾讯柠檬哪个好用

很多小伙伴在使用Mac时&#xff0c;会遇到硬盘空间不足的情况。遇到这种情况&#xff0c;我们能做的就是清理掉一些不需要的软件或者一些占用磁盘空间较大的文件来腾出空间。我们可以借助一些专门的清理工具&#xff0c;本文中我们来推荐几款好用的Mac知名的清理软件。并且将Cl…

C语言:亲密数对

题目描述 在自然数中有一种这样的数&#xff1a;它自身是一个完全平方数&#xff0c;加上1之后是一个素数&#xff0c;这一对数被称为亲密数对&#xff0c;请编程找出指定区域内的所有亲密数对。 例如在[10,100]之间的亲密数对有&#xff1a;&#xff08;16,17&#xff09;&am…

SQL在云计算中的新角色:重新定义数据分析

文章目录 1. 云计算与数据分析的融合2. SQL在云计算中的新角色3. 分布式SQL查询引擎4. SQL-on-Hadoop解决方案5. SQL与其他数据分析工具的集成6. 实时数据分析与SQL7. SQL在云数据仓库中的角色8. 安全性与隐私保护9. SQL的未来展望《SQL数据分析实战&#xff08;第2版&#xff…

SQL笔记-2024/01/31

cross join 两个表的笛卡尔积 例如&#xff1a; select s.name student_name,s.age student_age,s.class_id class_id,c.name class_name from student s cross join class c; 子查询 select s.name name,s.score score,s.class_id class_id from student s where s.class_id …

14.scala隐式转换

目录 概述实践代码执行结果 结束 概述 隐式转换&#xff1a;偷偷的(隐式)对现有功能进行增强(转换) 实践 代码 package com.fun.scalaimport java.io.File import scala.io.Sourceobject ImplicitApp {def main(args: Array[String]): Unit {// implicit 2 to 等价 &…

vuecli3 执行 npm run build 打包命令报错:TypeError: file.split is not a function

问题 今天有个项目在打包的时候遇到了一个问题&#xff0c;就是执行 npm run build 命令的时候报错了&#xff0c;如下&#xff1a; 解决 我排查了一下&#xff0c;模拟代码如下&#xff1a;在打包的时候用了 MinChunkSizePlugin const webpack require("webpack"…

LabVIEW多任务实时测控系统

LabVIEW多任务实时测控系统 面对现代化工业生产的复杂性和多变性&#xff0c;传统的测控系统已难以满足高效、精准、可靠的监控和控制需求。因此&#xff0c;开发一种基于LabVIEW的智能测控系统&#xff0c;能够提高生产效率&#xff0c;保证生产安全&#xff0c;是解决现代工…

ubuntu 没有屏幕安装QT(SSH远程登陆下)

1背景说明 需要在SSH登陆的ubuntu远程上安装QT&#xff0c;但是远程电脑没有屏幕&#xff0c;报了这个错误“QXcbConnection: Could not connect to display”。 2网上搜索有2种解决方案 由于远程服务器没有配置屏幕&#xff0c;都失败了 2.1配置屏幕关闭 vim ~/.bashrc …

打卡今天学习的命令 (linux

1.1 cp - 复制文件或目录 cp source destination cp -r source_directory destination # 递归复制目录及其内容1.2 rm - 删除文件或目录 rm file rm -r directory # 递归删除目录及其内容1.3 mv - 移动/重命名文件或目录 mv source destination mv old_name new_name # 重…

怎么清理电脑内存?详细图文教程分享!

“我的电脑用了才不到一年&#xff0c;现在内存总是不足。想问问大家平常遇到电脑内存不足的情况时有什么好用的清理方法吗&#xff1f;” 随着电脑使用时间的增长&#xff0c;内存占用可能会不断增加&#xff0c;导致电脑运行缓慢。为了保持电脑的良好性能&#xff0c;定期清理…

手把手教你实现Kmeans聚类,不使用MATLAB工具箱,纯手写matlab代码免费获取,UCI数据集为例...

K均值&#xff08;K-means&#xff09;是一种常用的聚类算法&#xff0c;用于将数据集划分为K个不同的组&#xff08;簇&#xff09;&#xff0c;使得每个数据点属于与其最近的均值点所代表的簇。K均值算法的基本思想是通过迭代优化&#xff0c;将数据点分配到K个簇中&#xff…

C语言的联合体:一种节省内存的数据结构

在C语言中&#xff0c;联合体&#xff08;union&#xff09;是一种特殊的数据结构&#xff0c;它允许我们在相同的内存位置存储不同的数据类型。这意味着联合体中的所有成员都共享同一块内存空间&#xff0c;因此它们不能同时存储其各自的值。联合体的主要目的是节省内存&#…

【RT-DETR有效改进】重参数化模块DiverseBranchBlock助力特征提取(附代码 + 修改教程)

&#x1f451;欢迎大家订阅本专栏&#xff0c;一起学习RT-DETR&#x1f451; 一、本文介绍 本文给大家带来的是改进机制是一种替换多元分支模块&#xff08;Diverse Branch Block&#xff09;&#xff0c;Diverse Branch Block (DBB) 是一种用于增强卷积神经网络性能的结构…