使用 JavaScript 和 Canvas 实现 ColorPicker

2024-03-10

I'm trying to implement ColorPicker using Canvas just for fun. But i seem lost. as my browser is freezing for a while when it loads due to all these for loops. I'm adding the screenshot of the result of this script: enter image description here


  
window.onload = function(){ colorPicker(); } function colorPicker(){ var canvas = document.getElementById("colDisp"), frame = canvas.getContext("2d"); var r=0, g=0, b= 0; function drawColor(){ for(r=0;r<255;r++){ for(g=0;g<255;g++){ for(b=0;b<255;b++){ frame.fillStyle="rgb("+r+","+g+","+b+")"; frame.fillRect(r,g,1,1); } } } } drawColor();

使用原始 RGBA 缓冲区可能会更有效,而不是为每个像素调用 fillRect。您可以使用以下方式获取一个上下文.getImageData https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#getImageData%28%29,用颜色值填充它,然后使用一次将其放回原处上下文.putImageData https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D#putImageData%28%29.

请注意,您当前的代码会覆盖每个像素 255 次,每个可能的蓝色值一次。每个像素的最终通道是 255 蓝色,因此您在输出中看不到灰色和黑色。

找到一种将所有可能的 RGB 值映射到二维图像的好方法并非易事,因为 RGB 是三维颜色空间。有很多策略可以实现这一点,但对于任何可能的用例来说,没有一种策略是真正最佳的。您可以在以下位置找到解决此问题的一些创意解决方案AllRGB.com http://allrgb.com/。其中一些可能适合某些用例的颜色选择器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 JavaScript 和 Canvas 实现 ColorPicker 的相关文章

  • Visual Studio 改变 Ctrl-K-D 的工作方式

    In Visual Studio I m using 2012 is there any way of editing the way that Ctrl K D combinations handles its Auto Formatti
  • Chrome 开发工具命中代码但未命中断点

    我在 chrome 开发工具上启用了断点 并且在一行上有一个断点 我知道 chrome 正在运行 因为我将断点放在具有以下语句的行上 alert why is this not breaking 如果我在本地主机中找到该文件 则断点有效 断
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table
  • “require(...)”是常见的 JavaScript 模式还是库函数?

    我通常发现这是 node js 脚本 模块以及 phantomJS casperJS 等中的第一行 我很好奇 这是否是服务器端 javascript SSJS 的常见模式 类似于 include在 C C 中或import在 Java 中
  • 如何在 JavaScript 中将变量的内容写入文件[重复]

    这个问题在这里已经有答案了 可能的重复 firefox 如何启用本地 JavaScript 来读取 写入我的 PC 上的文件 https stackoverflow com questions 2846045 firefox how to
  • 如何调试超时等待异步 Angular 任务?无法在角度页面上找到元素

    编辑 请注意 在 ernst zwingli 的帮助下 我找到了问题的根源 因此 如果您遇到相同的错误 他指出的修复之一可能会帮助您 我的问题是量角器本身的一个已知问题 如果您认为这可能是您 我已经扩展了我的步骤 以在我最初的问题之后查明问
  • 如何根据另一个下拉列表中的选择动态填充下拉列表中的选项?

    我有一个表 其中包含类别信息 例如产品 我已将它们列在下拉菜单中 现在 我需要做的是 在下一个下拉菜单中列出所选类别的子类别 我希望 javascript 是必需的 但我对 javascript 还不太熟悉 将非常感谢您的帮助 你应该使用
  • Aurelia 中的角度服务?

    我还没有找到详细说明如何从 Angular 1 x 迁移到 Aurelia 的详细文档 到目前为止 我只看到人们详细介绍了 Angular 的概念directive可以在 Aurelia 中使用重制 customElement 好吧 足够简
  • 嵌套 DIV 的类似斑马的 CSS 样式

    我嵌套了 DIV 元素 但我不知道嵌套的级别 我需要每个都有与其父级不同的背景 创建类似斑马的颜色 我只使用两种背景 深色和白色 效果需要类似于在容器中设置奇数和偶数子级的样式 但在我的例子中 子级是嵌套的 我可以使用每个嵌套元素的规则来做
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • jQuery 中什么函数相当于 .SelectMany()?

    让我解释一下 我们知道 jQuery 中的映射函数充当 Select 如 LINQ 中 tr map function return this children first returns 20 tds 现在的问题是我们如何在 jQuery
  • for循环中需要声明变量吗?

    有什么区别 for var i 0 i lt 5 i for i 0 i lt 5 i 是否有必要包含 var 关键字 我知道 var 关键字会影响变量范围 但我无法理解是否有必要在 for 循环中包含该关键字 在第二个示例中 您的变量是全
  • 在 Nodejs 中,如何停止 FOR 循环直到 MongoDB 调用返回

    我正在研究下面的代码片段 我有一个名为 stuObjList 的 JSON 对象数组 我想循环遍历数组以查找具有特定标志集的特定 JSON 对象 然后进行数据库调用以检索更多数据 当然 FOR 循环不会等待数据库调用返回并到达 j leng
  • 选择单选按钮时隐藏/显示 3 个文本框

    我有 2 个单选按钮 选择一个文本框时 我想显示 3 个文本框 并在选择其他文本框时隐藏它 这是代码 这是我的 2 个单选按钮
  • 如何对多行文本中的每一行应用填充?

    我已将背景颜色应用于 span 标签 也有左和右padding设置在它上面 问题是 padding仅适用于左侧 开始 和右侧 结束 span 而不是当文本换行时每行的左侧 开始 和右侧 结束 我该如何应用左和右padding to the
  • 使用 File API polyfill 读取数据 URL

    我正在尝试使用文件 API 库 https github com mailru FileAPI https github com mailru FileAPI 作为不支持文件 API 的浏览器的后备 以便将文件作为数据 URL 读取并将其传
  • PHP 文件上传帮助

    div align center div 这是我的代码
  • 如何获取符号名称(文字)?

    以下情况 var myVehicle brand Tesla var isMoving Symbol var currentStatus Symbol myVehicle isMoving true myVehicle currentSta
  • Chrome 调试器注入 javascript

    我有这样的好奇心 是否可以以某种方式在我的页面中注入 javascript 并执行它并调试它 正如您在控制台中所做的那样 但在控制台中您无法暂停并观察变量 是否可以调试我通过控制台输入的代码 为什么无法调试通过 XHR 接收的代码 Than
  • 如何通过点击复制 folium 地图上的标记位置?

    I am able to print the location of a given marker on the map using folium plugins MousePosition class GeoMap def update

随机推荐

  • 从输出流获取输入流

    我有一个组件在输出流中为我提供数据 ByteArrayOutputStream 并且我需要将其写入 SQL 数据库的 blob 字段而不创建临时缓冲区 因此需要获取输入流 根据答案here https stackoverflow com q
  • 为什么我的 php 代码返回 inf?

    我有一个数学问题 我试图计算一组值的总组合 当我尝试运行我的计算时 它只返回 INF 而不是数字 tally 1 foreach output as key gt er tally tally ord strtolower er 96 ec
  • 按时间间隔访问和设置 iPhone 的闹钟/用户警报

    有什么方法可以访问或设置 iPhone 的闹钟吗 我假设如果这不可用 唯一的其他方法是推送通知以定期提醒用户 有任何想法吗 没有用于访问日历或闹钟的公共 API
  • 退出前是否需要关闭文件描述符?

    当然 大多数情况下的直接答案是 yes 而且我坚信进程应该正确地清理它分配的任何资源 但我的情况是一个长期运行的系统守护进程 它在启动时打开固定数量的文件描述符 并在启动之前关闭它们 退出 这是一个嵌入式平台 我试图使代码尽可能紧凑 同时不
  • 在 VBA 中逐行读取/解析文本文件

    我正在尝试使用 VBA 解析文本文档并返回文本文件中给出的路径 例如 文本文件如下所示 Blah blah instructions Blah blah instructions on line 2 G Folder data xls D
  • Spring - 从查询中获取结果集

    我想用Spring JDBCTemplate但我想收到ResultSet 它不会将完整的查询结果存储在内存中 就像您会发现使用 java 执行标准语句一样JDBC 我发现的最接近的ResultSet was SqlRowSet sqlRow
  • 使用 SimpleDateFormat 时出错

    我正在尝试使用 SimpleDateFormat 类从该字符串中解析 DateTime 2012 年 7 月 5 日 11 38 02 442 世界标准时间 UTC 上午 我尝试了以下格式字符串 SimpleDateFormat datef
  • 数据库设计(库存数据库)

    我正在寻求设计一个跟踪小吃店的库存数据库 由于这将是单人 计算机访问 并且需要轻松移动到另一个系统 因此我计划使用 SQLite 作为数据库引擎 基本概念是跟踪从 Sams Club 等批发仓库购买的库存 然后跟踪库存 我试图克服的主要障碍
  • 在 WooCommerce 3 中获取订单运送商品详细信息

    我怎样才能得到订单运输方式 ID 例如 flate rate 自 WooCommerce 3 以来 一切都发生了变化 现在变得很复杂 我已经尝试过 order gt get data 在 foreach 循环中 但数据受到保护 如果您想获取
  • R 将整个文件夹移动到另一个目录

    我想将整个文件夹从一个目录移动到另一个目录 这是我的代码 folder old path C Users abc Downloads managerA path new C User abc Desktop managerA current
  • 一张数据库表可以包含多个主键吗?

    一张数据库表可以包含多个主键吗 是的 我说的是 RDBMS 一张表可以有 没有主键 一个主键由一列组成 或者 一个复合主键由两列或多列组成 除此之外 您可以拥有任意数量的唯一索引 这基本上可以完成相同的操作
  • 具有混合数据类型的 TensorFlow 数据集生成器

    我正在使用 TensorFlow 数据集 API https www tensorflow org guide datasets https www tensorflow org guide datasets 特别是 我将它与 Tensor
  • 在 Rails 中创建所见即所得表单生成器 (á la Wufoo)

    我必须向 Rails Web 应用程序添加类似 Wufoo 的 WYSIWYG 表单构建器功能 有谁知道有帮助的好资源 宝石 引擎 插件 示例代码 这并不是您问题的真正答案 但不幸的是 由于我的声誉水平 我仍然无法添加评论 抱歉 Drupa
  • 静态方法与否?

    我需要使用 PHP 开发一个小型 CMS 现在我正在尝试弄清楚其结构 CMS 将使用一组函数生成 诸如数据库功能 缓存 国际化之类的东西 我想这样做 使函数成为大 站点 类的非静态方法的一部分 这样我就可以运行该类的多个实例 但不确定我是否
  • 并行应用程序具有随机行为

    我正在编写一个 C 程序 使用 pthreads 在二维矩阵上进行波前模式计算 为了获得良好的性能 我以交错的方式将几行分配给每个线程 如下所示 线程0 线程 1 线程 2 线程 3 线程0 线程 1 线程 2 线程 3 etc 在这个计算
  • 当按下 alt+tab 或 windows+d 时,如何在 jquery 中触发事件?

    我想在按下 alt tab 或 windows d 时触发一个事件 以下是我的代码 当鼠标指针远离浏览器窗口时发出警报 但即使用户按 alt tab 或 Windows D 也应该发生此事件 有人可以帮我解决这方面的问题吗 以下是我的代码供
  • 在 ASP.NET Core 中获取浏览器语言?

    我试图从浏览器获取默认语言 并使用以下代码来获取它 var languages HttpContext Request UserLanguages 由于 NET Core 2 不支持上述内容 我进行了测试 var requestContex
  • Visual Studio:如何以编程方式检查使用的 C++ 平台工具集

    我必须使用 MSVC2012 和 v100 平台工具集 来自 MSVC2010 构建项目 不幸的是我正在使用 C 11 功能 范围基于 跨越代码 我想知道是否有一个预处理器指令可以在编译时了解当前的平台工具集 即 if MSC PLATFO
  • 过滤数据库表客户端 T-SQL select from case when then where 的任何列

    我希望能够过滤数据网格的列 但不知道如何修复 select 语句 这是我所能得到的 SELECT ClientID FirstName LastName BirthDate StreetName City State ZipCode Cel
  • 使用 JavaScript 和 Canvas 实现 ColorPicker

    I m trying to implement ColorPicker using Canvas just for fun But i seem lost as my browser is freezing for a while when