使用 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 的相关文章

随机推荐

  • 从输出流获取输入流

    我有一个组件在输出流中为我提供数据 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