【H5】canvas画布像素的设置与获取:

2023-11-13

【H5】canvas画布像素的设置与获取:

  1. getImageData() 从Canvas画板上取得指定位置的像素数据
  2. putImageData() 将所得到的像素数据描画到Canvas画板上
  3. createImageData() 方法创建新的空白像素 ImageData 对象,参数里面也可以直接放ImageData 像素值

我们来实践操作一下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        canvas{border:1px solid deeppink;}
    </style>
</head>
<body>
    <canvas width='500' height='500'></canvas>

    <script>
        const oC = document.querySelector('canvas');    //获取画布
        const ctx = oC.getContext( "2d" );  //设置画布类型2d
        const imgData = ctx.createImageData( 100 , 100 );   //
        //100*100 是此区域所在面积有多少个像素单位;x*y   100*100 = 10000 个rgba()

        //imgData.data是储存rgba()的一个40000长度的数组 因为颜色的组成部分为rgba(R,G,B,透明度)
        for( let i = 0 ; i<imgData.data.length; i+=4){
            imgData.data[i] = Math.random()*255;
            imgData.data[i+1] = 0;
            imgData.data[i+2] = 0;
            imgData.data[i+3] = 100;    //透明度 0~255
        }
        //将上面for循环得到的像素数据画到canvas画布上
        ctx.putImageData( imgData , 200 , 200 );
        console.log( imgData )

        //获取到画布上的像素    (获取的位置x,~y,获取的长,~宽)
        let aa = ctx.getImageData(200,200,100,100)
        console.log(aa)
        //结果发现  imgData 与 aa 是一致的 说明获取成功
    </script>
</body>
</html>

运行效果如下:

在这里插入图片描述

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

【H5】canvas画布像素的设置与获取: 的相关文章

  • html5 canvas贝塞尔曲线获取所有点

    我喜欢从贝塞尔曲线中得到一些点 我发现 在javascript中查找三次贝塞尔曲线的所有点 https stackoverflow com questions 15397596 find all the points of a cubic
  • 是否可以强制 html canvas 标签显示子项?

    基本上和我问的一模一样 我希望以下工作能够发挥作用
  • HTML5 - 创建画布视口

    我有一个 2D 数组 宽 30 下 20 然而 视口仅绘制横向 15 和向下 10 的内容 我最初有一个这样的游戏 我一直在努力实现这样的目标 这是我的小提琴 http jsfiddle net sTr7q http jsfiddle ne
  • html画布绘图显示出来

    我确信这个问题在我还找不到答案之前就已经被问过 我想通过在顶部绘制另一个白色矩形来擦除黑色矩形的一部分 但是许多原始黑色矩形显示出来 就像正在平均一样 canvas document getElementById canvas contex
  • 从 url 加载图像并绘制到 HTML5 Canvas

    我在从 javascript 中的 url 加载图像时遇到问题 下面的代码可以工作 但我不想从 html 加载图像 我想使用纯 JavaScript 从 url 加载图像 var c document getElementById myCa
  • 使用画布矩形裁剪图像

    裁剪图像无法正常工作 我哪里错了 我的Xaml
  • Fabric js-在保存和加载回画布时缺少添加附加属性的扩展 toObject 方法

    我创建了一个带有矩形和文本的织物组 最后 我使用以下代码将自定义属性 名称 添加到组类中 我使用 JSON stringify canvas 将画布数据序列化为 JSON 并将 Json 字符串发送到 java 最后将 Json 字符串保存
  • 如何在 html 5 画布上旋转单个对象?

    我试图弄清楚如何在 html 5 画布上旋转单个对象 例如 http screencast com t NTQ5M2E3Mzct http screencast com t NTQ5M2E3Mzct 我希望每一张卡都能以不同的角度旋转 到目
  • 为什么对于大于 65776 像素的画布源,drawImage 性能差异很大

    我在 jsperf 上写了一些与以下相关的测试用例 1 在屏幕外画布上绘图 2 将图像绘制到屏幕画布上 我发现如果源画布中的像素数 无论 dst 小于 65776 像素 性能会高得多 我预计这个性能限制是 65536 像素 如果有的话 He
  • 如何在 Mac 的任何 webkit 中隐藏父圆角的画布内容?

    我有一个父母div带有圆角 其中包含canvas div div
  • Android:我可以创建一个不是矩形的视图/画布吗?圆形的?

    我有一个圆形视图 悬停在主要内容上方 gt 从屏幕出来的 z 轴方向 当有人点击屏幕时 我希望选择主要内容或悬停在上方的视图 当它覆盖主视图时 到目前为止效果很好 我在透明画布上有一个圆形物品 这意味着您可以看到该圆圈之外的背景的所有内容
  • 使用画布仅删除文本而不删除图像

    我正在尝试删除画布元素中的文本 而不丢失Background Image of the Canvas Element 我想我需要保存Imagesrc并把它还给Canvas Element之后clearRect 但我不知道该怎么做 我希望有人
  • 将剪贴板图像粘贴到画布

    我有一个画布 我需要用户能够将图像粘贴到上面 我希望这是跨浏览器的 我只想使用 html javascript 我也愿意使用 Flash 对象 这在 Chrome 中工作得很好 尽管到目前为止我还没有弄清楚如何让它在 Firefox 中工作
  • 如何在android中画一条曲线?

    我是 Android 新手 正在开发一个关于绘制线条的示例项目 我想画一条连接两点的曲线或高架线 x1 y1 and x2 y2 我试过canvas drawArc 方法 但是RectF内的值drawArc方法只是圆的 x y 中心点 它在
  • 从画布保存/转换后文件质量下降的问题

    这是我正在使用的代码 代码位于这篇文章的底部 但这里是链接GitHubGist Noitidart ff addon snippet browseForBadgeThenCreateSaveAnApply js https gist git
  • JavaScript;使用画布在图像上添加文本并保存到图像

    我只想制作一个页面 您可以在其中输入文本并将其添加到所选图像上并将其另存为新图像 我尝试了几种方法 但没有运气
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • 无法居中对齐画布

    我一直在谷歌搜索解决方案但无济于事 我只想center align my canvas 我努力了float center text align center margin top 100px但我的舞台没有在浏览器中居中对齐 任何帮助表示赞赏
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • WPF 画布缩放/变换以适合

    我重新发布这个问题 因为上次我没有得到太多答复 希望重新措辞可能有所帮助 本质上 我想做的是创建一个数据绑定画布 它将自动缩放其内容以 填充 可用空间 有点像缩放以适应操作 不幸的是 我的 WPF 技能还不是很强 我正在努力弄清楚如何完成最

随机推荐

  • Element浅尝辄止9:Popover 弹出框组件

    Popover 的属性与 Tooltip 很类似 它们都是基于Vue popper开发的 因此有重复属性 1 如何使用 trigger属性用于设置何时触发 Popover 支持四种触发方式 hover click focus 和 manua
  • NOIP中的数学--第6课 排列与组合

    排列与组合的概念与计算公式 1 排列 在乎顺序 全排列 n个人全部来排队 队长为n 第一个位置可以选n个 第二位置可以选n 1个 以此类推得 P n n n n 1 n 2 321 n 规定0 1 部分排列 n个人选m个来排队 m lt n
  • MachineLearningWu_17/P78-P83_UsingBiasAndVarianceToDiagnose

    x 1 高bias和高variance的意义 我们引入高bias和高variance是为了衡量模型是underfit还是overfit的问题 我们使用Jtrain来代表训练误差 使用Jcv即交叉熵损失表示验证集误差 高bias意味着欠拟合
  • java模拟http请求,通过流的方式发送数据,模拟接收流文件和json数据

    项目里碰到过模拟ajax请求的案例 研究了一下 觉得 httpClient 是真心好用 由于模拟环境搞了大半天 httpclient就另外再写博文吧 下面的例子介绍流的方式发送和接收 这个就有点暴力了 想传啥都行 以字节流的方式发送数据 可
  • java image 透明,绘制完全透明的“白色”在Java BufferedImage中

    This might sound like a bit of strange title but bear with me there is a reason I am trying to generate a white glow aro
  • 【调用百度翻译接口实现简单窗口的汉译英】

    与百度翻译同种方法实现简单窗口的汉译英 前言 一 思路梳理 二 思路3的文件代码展示 1 引入库 总结 前言 基于python爬虫方面 我们能做很多事 这里 我们先找到百度翻译的接口 然后自己构建逻辑 实现建议窗口汉语翻译英语功能 一 思路
  • python 数据库连接池_python数据库连接池

    一 DBUtils的认识 首先管理数据库连接池的包是 DBUtils 为高频度并发的数据库访问提供更好的性能 可以自动管理连接对象的创建和释放 最常用的两个外部接口是PersistentDB 和 PooledDB 前者提供了单个线程专用的数
  • mac下面有epoll?

    没有的 但是mac下面有kqueue 跟epoll原理是差不多的 这个是没办法的 如果实在需要 就用Ubuntu吧 这个也可以无缝迁移 更多资源 更多文章由小白技术社提供 是我啦
  • Mysql学习(十一) -- 常见问题处理

    1 MySQL数据库cpu飙升的话你会如何分析 重点是定位问题 使用top观察mysqld的cpu利用率 切换到常用的数据库 使用show full processlist 查看会话 观察是哪些sql消耗了资源 其中重点观察state指标
  • 5G到底有哪些能力

    来源 工信头条 作者 华为5G首席科学家 童文 摘要 华为5G首席科学家告诉你5G到底有哪些能力 2019年是5G产业进入全面商用的关键一年 全球5G网络的部署已经启动 2018年6月 5G独立组网标准冻结 5G完成了第一阶段全功能eMBB
  • Android Execution failed for task ‘:app:mergeDebugAssets‘. > java.nio.file.AccessDeniedException:错误

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 错误详情图 在项目中引入萤石云的依赖后 compile com ezviz sdk ezuikit 2 2 1 就开始报这个错误 前前后
  • (.*?)正则表达式

    1 匹配任意除换行符 n 外的字符 2 表示匹配前一个字符0次或无限次 3 表示前边字符的0次或1次重复 4 或 后跟 表示非贪婪匹配 即尽可能少的匹配 如 重复任意次 但尽可能少重复 5 表示匹配任意数量的重复 但是在能使整个匹配成功的前
  • cookies添加python selenium

    def add ck a browser delete all cookies 删除原有cookies cookies 在浏览器里面复制 a BIDUPSID B8D733AE1AF91ABF07AE6448B2DF91AA PSTM 16
  • 预约到家按摩小程序开发定制同城服务

    随着生活节奏加快 生活压力也随之而来 很多人忙于工作与生计 身体和心理两方面都在承受重压 而按摩能够消除身体的疲惫 增强人的身体体质 在劳累过后放松身心按摩一会儿 可以快速恢复精神状态 增强免疫力和抵抗力 按摩的好处很多 但由于现代人时间和
  • 0001.两数之和(简单)

    代码 Java版 2020 07 03 public int twoSum int nums int target int ans new int 2 for int i 0 i lt nums length i for int j i 1
  • c#线程二

    下面的表格列展了 NET对协调或同步线程动作的可用的工具 简易阻止方法 构成 目的 Sleep 阻止给定的时间周期 Join 等待另一个线程完成 锁系统 构成 目的 跨进程 速度 lock 确保只有一个线程访问某个资源或某段代码 否 快 M
  • 记录WIN10选择文件右键后资源管理器无响应的解决方法

    现象 WIN10选择文件 右键文件后资源管理器无响应 解决方法 找到一种亲测可用的解决方法 即清除文件资源管理器历史记录 详细操作 1 打开文件资源管理器 2 点击左上角 文件 点击 选项 找到 隐私 下方的 清除 按钮 点击 清除 最后点
  • DVWA - XSS DOM (high)

    随便选择一个 url中会出现我们选的哪个 http 127 0 0 1 DVWA master vulnerabilities xss d default 3Cscript
  • CVPR 2022

    点击下方卡片 关注 CVer 公众号 AI CV重磅干货 第一时间送达 作者 轻尘一笑 已授权转载 源 知乎 编辑 CVer https zhuanlan zhihu com p 489839282 导读 在CVPR 2022上 新加坡南洋
  • 【H5】canvas画布像素的设置与获取:

    H5 canvas画布像素的设置与获取 getImageData 从Canvas画板上取得指定位置的像素数据 putImageData 将所得到的像素数据描画到Canvas画板上 createImageData 方法创建新的空白像素 Ima