使用canvas和javascript读取图像的像素颜色

2024-02-06

我想知道是否可以使用画布和 javascript 扫描图像中的某些像素颜色并使用它们来制作地图。 例如: 寻找#ff0000并将其设置为地图上的数字1并设置#000000到 2 等等,制作如下地图:

var map = [
    [1,1,1,1,1],
    [1,0,0,0,1],
    [1,0,2,0,1],
    [1,0,0,0,1],
    [1,1,1,1,1]
];

所以基本上我想知道如何获取代码来读取图像并找到我想要它搜索的颜色,然后将它们绘制在变量中


这应该是一个好的开始。

var zeroFill = function(num, padding) {
    return Array(padding + 1 - (num + '').length).join('0') + num;
};

var hexColorsToId = {
        'ff0000': 1,
        '000000': 2 
        /* ... */
    },
    map = [],
    canvas = document.createElement('canvas'),
    ctx = canvas.getContext('2d'),
    image = new Image;

image.onload = function() {
    canvas.width = image.width;
    canvas.height = image.height;
    ctx.drawImage(image, 0, 0, image.width, image.height);

    var data = ctx.getImageData(0, 0, canvas.width, canvas.height).data;

    for (var i = 0; i < data.length; i += 4) {
        var red = zeroFill(data[i].toString(16), 2),
            green = zeroFill(data[i + 1].toString(16), 2),
            blue = zeroFill(data[i + 2].toString(16), 2),
            hex = red + green + blue;

        if (hexColorsToId.hasOwnProperty(hex)) {
            map.push(hexColorsToId[hex]);
        }
   }
};

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

使用canvas和javascript读取图像的像素颜色 的相关文章

随机推荐

  • 阻塞读和非阻塞读有什么区别?

    在上述问题中添加等待 不等待指示器的概念作为 TCP IP 或 UDP 环境中 ReadMessage 函数的参数 第三方功能描述指出 此函数用于从先前的 registerforinput 调用定义的队列中读取消息 输入等待 不等待指示器将
  • Pandas - 计算相对于最早值的每日差异

    这可能很容易 但由于某种原因 我发现它很难完成 任何提示将非常感谢 我有一些每天 5 分钟间隔的时间序列数据 唉 Date Values 2012 12 05 09 30 00 5 2012 12 05 09 35 00 7 2012 12
  • 在同一行文本上对齐不同的字体大小以便看起来不错?

    基本上 我希望在同一行上有一个 h1 和一个 p 元素 但是对齐方式偏离了很多 意味着 H1 高于 P 并且看起来很糟糕 并且我之前从未使用 css 做过这样的事情 我已经整理了一个 jsfiddle 来配合它 这里是代码 h1 style
  • ASP.NET MVC3 Razor - 如何有条件地退出或结束或返回或中断部分视图?

    使用 Razor 如何有条件地退出或结束或返回或中断部分视图 if Model null return 不 你不return在视图中 您只需不在主视图中包含此类部分即可 if Model null Html Partial somePart
  • Python CFFI 的内存管理和析构函数/free() 约定?

    如果我包装一个 C 类 from ffi import ffi lib class MyClass object def init self self c class lib MyClass create 确保的最佳实践是什么lib MyC
  • 我可以获得 HTMLElement DOM 对象的完整 HTML 表示形式吗?

    我正在使用 jquery 来解析一些 HTML 例如 html contents each function var element this tagName 我可以使用 DOM 或更友好的 jQuery 函数访问 tagName 子项 父
  • 迭代数组的每个元素(第一个元素除外)

    编写此代码的惯用 Ruby 方式是什么 给定一个数组 我想迭代该数组的每个元素 但跳过第一个元素 我想在不分配新数组的情况下执行此操作 这是我想出的两种方法 但都不是特别优雅 这可行 但似乎太冗长了 arr each with index
  • SQL Server 连接后行数低估

    当实际行数为 2000 时 查询优化器估计联接结果只有一行 这导致数据集上的后续联接的估计结果只有一行 而其中一些联接的结果却高达 2000 30 000 计数为 1 时 QO 正在为许多连接选择循环连接 索引查找策略 这太慢了 我通过限制
  • 配置Webpack将LESS文件的目录构建成相应的CSS文件

    我希望使用 Webpack 编译我们所有的 less 文件 less to public css并将它们作为常规 css 包含在我们的服务器端模板中 not将文本粘贴到使用 ExtractText 插件或重载 require 中 也就是说
  • ASP.NET、C#、IIS、MIME 类型、有条件文件上传

    我的网站上有一个文件上传网络表单 它只需要接受某些格式 或 MIME 类型 以下代码运行完美 但它不会将 DOCX 文件上传到服务器 这是唯一不起作用的文件类型 我仔细检查了每一行代码 甚至进入了 IIS 管理器以确保 DOCX MIME
  • 如何在plolty3.10中绘制排序条形图

    我一直在尝试绘制一些商店销售数据的排序条形图 但无论我尝试什么 它都会给我未排序的数据 如何使用plotly绘制排序后的条形图 NOTE https community plot ly t sort bars in bar chart by
  • 字体文件未随 ASP.NET Bundle 一起加载

    在我的 ASP NET MVC 应用程序中 我使用 Bundle 来压缩 css 和 js 文件 问题是 在我启用优化模式后 字体未加载 BundleTable EnableOptimizations true 这是 C 代码 public
  • 如何使用 Go olivere/elastic 基于多个字段进行排序

    我几天来一直在尝试知道如何使用 Go 根据多个字段进行排序olivere elastic https github com olivere elastic 我正在尝试将其翻译成 Go sort name age desc 我尝试过使用New
  • Jupyter 中对 html 标签和从右到左语言的支持

    在 ipython 笔记本中 我们可以在 markdown 中添加 html 标签 从右到左语言的一个有用标签是 p text p 这方便地使文本右对齐 有没有办法在 Jupyter 中添加 html 标签或从右到左的段落对齐方式 可以这样
  • Xcode 8 / Swift 3:简单的 UIPicker 代码不起作用

    我有协议 class ViewController UIViewController UIPickerViewDelegate UIPickerViewDataSource 我有数据 let muteForPickerData minute
  • 将 javascript 封装在

    将 javascript 代码包装在其中有什么意义 这是我最讨厌的事情之一 这是一种古老的开发人员实践 旨在 保护 不理解的旧浏览器
  • SwiftUI:如何使用 NavigationViews 切换到新的导航堆栈

    我目前正在使用 SwiftUI Beta 5 我有一个工作流程 其中涉及浏览一系列视图 最后一个视图涉及将大量数据填充到应用程序中并结束特定工作流程的操作 下载数据后 用户应该能够启动新的工作流程 我想 忘记 旧的 NavigationVi
  • Hadoop Map-Reduce 操作在写入输出时失败

    我终于能够在 Hadoop 上启动 Map Reduce 作业 在单个 debian 机器上运行 但是 MapReduce作业总是失败并出现以下错误 hadoopmachine debian hadoop 1 0 1 bin hadoop
  • Localdate.format,未应用格式

    我的 FXML 中有一个 DatePicker 我需要日期才能将其插入到我的 SQL 数据库中 我想格式化我的日期 但它不起作用 LocalDate localDate purchased at getValue localDate for
  • 使用canvas和javascript读取图像的像素颜色

    我想知道是否可以使用画布和 javascript 扫描图像中的某些像素颜色并使用它们来制作地图 例如 寻找 ff0000并将其设置为地图上的数字1并设置 000000到 2 等等 制作如下地图 var map 1 1 1 1 1 1 0 0