iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > VUE >HTML5 Canvas像素操作的示例分析
  • 960
分享到

HTML5 Canvas像素操作的示例分析

2024-04-02 19:04:59 960人浏览 泡泡鱼
摘要

这篇文章给大家分享的是有关HTML5 canvas像素操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 注意 由于人们可以直接操纵像素数据,因此出现了某些人利用从C

这篇文章给大家分享的是有关HTML5 canvas像素操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

注意 由于人们可以直接操纵像素数据,因此出现了某些人利用从Canvas直接获取并且修改数据的能力做出一些恶意和非法的行为。浏览器限制了人们用Canvas跨域获取图片数据的能力,非同域图片禁止读取和修改,

在像素操作的过程中,ImageData 对象保存了图像像素值。每个对象有3个属性,即width、height和data。data属性类型为CanvasPixelArray,用于存储width*height*4个像素值。每一个像素有RGB值和透明度Alpha值(其值为0至255)。像素的顺序从左至右,从上到下,按行存储。

既然讨论像素操作,那么读者最好能够从头到尾了解这一过程,包括读取、控制和更新Canvas上的像素。这里,我们要介绍3个内置方法,即getImageData()、putImageData()、create-ImageData()。

1. getImageData()

getImageData()方法用于从Canvas中复制某一矩形区域的像素数据。具体的调用代码如下:

var canvasData = ctx.getImageData(0, 0, mycanvas.width, mycanvas.height);

要注意的是,像素级操作的运算量非常巨大,以致查看canvasData.data的数据时会由于内存的消耗过大而导致浏览器崩溃,

2. putImageData()

putImageData()方法用于修改或者更新某个图形区域中的像素信息,此方法仅能在同域下使用。本地硬盘模式下也无法使用,必须架起WEB服务器

具体代码如下:

var canvasData = ctx.putImageData(canvasData, 0, 0);

3. createImageData()

createImageData()方法根据指定的图片数据(image data)具有的宽高,建立一个ImageData对象。此方法并不会从现有的Canvas中复制像素,它生成的是完全空白的像素矩阵,它的初始值是全透明的黑色,即 (255,255,255,0),伪代码如下:

var canvasData = ctx.createImageData(mycanvas.width,my canvas.height);

canvasData="某些像素数据"

ctx.putImageData (canvasData, 0, 0);

下面的代码中,请务必在Web服务器环境下执行,否则无法正确显示。

<canvas id="mycanvas" width="500" height="500" style="border:1px #000 solid;">

</canvas>

<script type="text/javascript">

var mycanvas = document.getElementById('mycanvas');

var ctx=mycanvas.getContext('2d');

var img=new Image();

img.src="test.png";

img.onload=function(){

ctx.drawImage(img,0,0);

var imgd = ctx.getImageData(0,0,100,200);

var pix = imgd.data;

//下面开始反色处理

for(var i=0,n=pix.length;i<n;i+=4){

pix[i]=255 - pix[i]; //红

pix[i+1] = 255-pix[i+1]; //绿

pix[i+2] = 255-pix[i+2]; //蓝

pix[i+3] = pix[i+3]; //Alpha

}

ctx.putImageData(imgd,0,0);

imgd = ctx.getImageData(200,100,100,200);

pix = imgd.data;

//透明处理,透明度为0.6

for(var i=0,n=pix.length;i<n;i+=4){

pix[i] = pix[i]; //红

pix[i+1] = pix[i+1]; //绿

pix[i+2] = pix[i+2]; //蓝

pix[i+3] = pix[i+3]*0.6; //Alpha

}

ctx.putImageData(imgd,200,100);

}

</script>

感谢各位的阅读!关于“html5 Canvas像素操作的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: HTML5 Canvas像素操作的示例分析

本文链接: https://www.lsjlt.com/news/92262.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • HTML5 Canvas像素操作的示例分析
    这篇文章给大家分享的是有关HTML5 Canvas像素操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 注意 由于人们可以直接操纵像素数据,因此出现了某些人利用从C...
    99+
    2024-04-02
  • canvas像素点操作之视频绿幕抠图的示例分析
    这篇文章将为大家详细讲解有关canvas像素点操作之视频绿幕抠图的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 本文介绍了canvas像素点操作之视频绿幕抠图,分享给大家,具体如下:用...
    99+
    2023-06-09
  • HTML5中Canvas图像模糊的示例分析
    这篇文章给大家分享的是有关HTML5中Canvas图像模糊的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近在用h6的canvas画动画,发现图像特别模糊。后来终于找到罪魁祸首是<meta nam...
    99+
    2023-06-09
  • HTML5 Canvas切片Slicing的示例分析
    小编给大家分享一下HTML5 Canvas切片Slicing的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! draw...
    99+
    2024-04-02
  • HTML5 Canvas坐标转换的示例分析
    这篇文章给大家分享的是有关HTML5 Canvas坐标转换的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 在Canvas绘图过程中,坐标始终是从左上角的起始位置开始的...
    99+
    2024-04-02
  • JavaScript中HTML元素操作的示例分析
    小编给大家分享一下JavaScript中HTML元素操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、获取操作的元...
    99+
    2024-04-02
  • HTML5中Canvas画线技巧的示例分析
    这篇文章主要为大家展示了“HTML5中Canvas画线技巧的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML5中Canvas画线技巧的示例分析”这...
    99+
    2024-04-02
  • Html5中原生拖拽操作的示例分析
    这篇文章给大家分享的是有关Html5中原生拖拽操作的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。最近的一次项目开发中用到了H5的拖拽功能,由于现有项目使用的是VUE全家桶,使用了vuedragable这...
    99+
    2023-06-09
  • JavaScript DOM元素常见操作的示例分析
    这篇文章主要介绍JavaScript DOM元素常见操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:DOM概念DOM(Document Object Model...
    99+
    2024-04-02
  • html5中canvas微信海报分享的示例分析
    小编给大家分享一下html5中canvas微信海报分享的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!随机产生一张图片拿到微信用户的头像和称呢(自己调后端...
    99+
    2023-06-09
  • 基于html5中canvas做批改作业小插件的示例分析
    这篇文章给大家分享的是有关基于html5中canvas做批改作业小插件的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需求分析能进行批改,就是相当于画笔能进行画笔的撤回功能能进行全部画笔的清除功能可以转化...
    99+
    2023-06-09
  • HTML5中的aside元素与article元素的示例分析
    本篇文章为大家展示了HTML5中的aside元素与article元素的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。<aside>元素HTML&...
    99+
    2024-04-02
  • 界面操作劫持与HTML5安全的示例分析
    这篇文章主要介绍界面操作劫持与HTML5安全的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、界面操作劫持1)ClickJackingClickJacking点击劫持,这是...
    99+
    2024-04-02
  • python opencv图像处理基本操作的示例分析
    本篇文章给大家分享的是有关python opencv图像处理基本操作的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。①读取图像②显示图像该函数中,name是显示窗口的名...
    99+
    2023-06-25
  • HTML5新特性与Canvas常用属性的示例分析
    这篇文章主要介绍HTML5新特性与Canvas常用属性的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 1.HTML5的内容类型 内容类型 描述 内嵌 向文档中添加其他...
    99+
    2024-04-02
  • HTML5 Canvas鼠标与键盘事件demo的示例分析
    本篇文章给大家分享的是有关HTML5 Canvas鼠标与键盘事件demo的示例分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 ...
    99+
    2024-04-02
  • jQuery操作DOM的示例分析
    这篇文章主要介绍jQuery操作DOM的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jQuery的选择器很强大,用起来又简单又灵活,但是搞了这么久,我拿到了jQuery对象...
    99+
    2024-04-02
  • jquery操作ul的示例分析
    这篇文章给大家分享的是有关jquery操作ul的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、html标记 <ul id="att...
    99+
    2024-04-02
  • Hibernate update操作的示例分析
    这篇文章主要介绍Hibernate update操作的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在所有之前,说明一下,对于Hibernate,它的对象有三种状态,transient、persistent、...
    99+
    2023-06-17
  • js cookie操作的示例分析
    这篇文章主要介绍了js cookie操作的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。cookieObj=function(){}cookieObj.prototy...
    99+
    2023-06-03
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作