`
747017186
  • 浏览: 331459 次
社区版块
存档分类
最新评论

canvas的主要方法(3)

 
阅读更多

定义和用法

getImageData() 方法返回 ImageData 对象,该对象拷贝了画布指定矩形的像素数据。

对于 ImageData 对象中的每个像素,都存在着四方面的信息,即 RGBA 值:

  • R - 红色 (0-255)
  • G - 绿色 (0-255)
  • B - 蓝色 (0-255)
  • A - alpha 通道 (0-255; 0 是透明的,255 是完全可见的)

color/alpha 以数组形式存在,并存储于 ImageData 对象的 data 属性中。

提示:在操作完成数组中的 color/alpha 信息之后,您可以使用 putImageData() 方法将图像数据拷贝回画布上。

例子:

以下代码可获得被返回的 ImageData 对象中第一个像素的 color/alpha 信息:

red=imgData.data[0];
green=imgData.data[1];
blue=imgData.data[2];
alpha=imgData.data[3];

亲自试一试

提示:您也可以使用 getImageData() 方法来反转画布上某个图像的每个像素的颜色。

使用该公式遍历所有的像素,并改变其颜色值:

red=255-old_red;
green=255-old_green;
blue=255-old_blue;

(请见下面的“亲自试一试”实例。)

JavaScript 语法

var imgData=context.getImageData(x,y,width,height);//在指定的区域取回像素

参数值

参数 描述
x 开始复制的左上角位置的 x 坐标。
y 开始复制的左上角位置的 y 坐标。
width 将要复制的矩形区域的宽度。
height 将要复制的矩形区域的高度。

 

 

定义和用法

putImageData() 方法将图像数据(从指定的 ImageData 对象)放回画布上。

提示:请参阅 getImageData() 方法,它可复制画布上指定的矩形的像素数据。

提示:请参阅 createImageData() 方法,它可创建新的空白 ImageData 对象。

JavaScript 语法:

context.putImageData(imgData,x,y,dirtyX,dirtyY,dirtyWidth,dirtyHeight);与getImageData是对应的

参数值

参数 描述
imgData 规定要放回画布的 ImageData 对象。
x ImageData 对象左上角的 x 坐标,以像素计。
y ImageData 对象左上角的 y 坐标,以像素计。
dirtyX 可选。水平值(x),以像素计,在画布上放置图像的位置。
dirtyY 可选。水平值(y),以像素计,在画布上放置图像的位置。
dirtyWidth 可选。在画布上绘制图像所使用的宽度。
dirtyHeight 可选。在画布上绘制图像所使用的高度。

 

 

 

定义和用法

globalAlpha 属性设置或返回绘图的当前透明值(alpha 或 transparency)。

globalAlpha 属性值必须是介于 0.0(完全透明) 与 1.0(不透明) 之间的数字。

默认值: JavaScript 语法:
1.0
context.globalAlpha=number;//设置透明度

属性值

值 描述
number 透明值。必须介于 0.0(完全透明) 与 1.0(不透明) 之间。

 

实例

首先,绘制一个红色的矩形,然后将透明度 (globalAlpha) 设置为 0.2,然后再绘制一个绿色和一个蓝色的矩形:

JavaScript:

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.fillStyle="red";
ctx.fillRect(20,20,75,50);
// 调节透明度
ctx.globalAlpha=0.2;
ctx.fillStyle="blue";
ctx.fillRect(50,50,75,50);
ctx.fillStyle="green";
ctx.fillRect(80,80,75,50);

 

 

 

 

 

定义和用法

globalCompositeOperation 属性设置或返回如何将一个源(新的)图像绘制到目标(已有)的图像上。

源图像 = 您打算放置到画布上的绘图。

目标图像 = 您已经放置在画布上的绘图。

默认值: JavaScript 语法:
source-over
context.globalCompositeOperation="source-in";

属性值

值 描述
source-over 默认。在目标图像上显示源图像。
source-atop 在目标图像顶部显示源图像。源图像位于目标图像之外的部分是不可见的。
source-in 在目标图像中显示源图像。只有目标图像内的源图像部分会显示,目标图像是透明的。
source-out 在目标图像之外显示源图像。只会显示目标图像之外源图像部分,目标图像是透明的。
destination-over 在源图像上方显示目标图像。
destination-atop 在源图像顶部显示目标图像。源图像之外的目标图像部分不会被显示。
destination-in 在源图像中显示目标图像。只有源图像内的目标图像部分会被显示,源图像是透明的。
destination-out 在源图像外显示目标图像。只有源图像外的目标图像部分会被显示,源图像是透明的。
lighter 显示源图像 + 目标图像。
copy 显示源图像。忽略目标图像。
source-over 使用异或操作对源图像与目标图像进行组合。

 

 var c=document.getElementById("myCanvas");

var ctx=c.getContext("2d");

ctx.fillStyle="red";
ctx.fillRect(20,20,75,50);
ctx.globalCompositeOperation="source-over";
ctx.fillStyle="blue";
ctx.fillRect(50,50,75,50);

ctx.fillStyle="red";
ctx.fillRect(150,20,75,50);
ctx.globalCompositeOperation="destination-over";
ctx.fillStyle="blue";
ctx.fillRect(180,50,75,50);

 

分享到:
评论

相关推荐

    封装canvas各种方法的vue组件

    在本例中,“封装canvas各种方法的vue组件”意味着开发者已经将常见的Canvas操作(如绘图、文字处理等)封装在一个自定义的Vue组件里,方便在项目中多次使用,提高了代码的复用性和可维护性。 其次,`Canvas API`...

    html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片

    html2canvas主要有以下几个属性: 1. allowTaint(布尔类型,默认为false):允许跨域图片对Canvas产生污染。 2. background(字符串类型,默认为"#fff"):Canvas的背景颜色,如果DOM中未指定则默认透明。 3. ...

    H5 canvas制造3D旋转爱心表白

    在"3D旋转爱心表白"这个项目中,我们将主要利用Canvas的`requestAnimationFrame`方法来实现平滑的动画效果,以及`transform`属性来创建3D旋转。以下是实现这一效果的关键步骤: 1. **创建Canvas元素**:在HTML文档...

    Android canvas.save()和canvas.restore()的理解

    `save()`和`restore()`是`Canvas`中两个非常关键的方法,它们主要用于管理绘图状态,确保复杂绘图过程中的可逆性和精确性。在本文中,我们将深入理解这两个方法的作用以及如何在实际应用中使用它们。 首先,`canvas...

    HTML5 Canvas五彩缤纷的3D发光水晶球动画

    接着,在JavaScript代码中,我们通过`document.getElementById('myCanvas')`获取这个元素,并使用`getContext('2d')`方法来获取2D渲染上下文,这将是我们进行绘图的主要接口。 对于3D效果,虽然Canvas本身不支持...

    详解Html5 Canvas画线有毛边解决方法

    这个问题主要是由于Canvas中坐标点与像素点之间的对齐问题造成的。下面我们将详细探讨这个问题及解决方案。 **Canvas线条渲染原理:** 在Canvas中,线条是由一系列像素点构成的。当你使用画线指令如`lineTo`、`...

    Canvas 3D卡片旋转特效.rar

    CSS3的`transform`属性可以与Canvas结合使用,实现更复杂的2D和3D变换,比如`rotateX`、`rotateY`和`rotateZ`,使得卡片在视觉上有更自然的旋转过渡。 jQuery是一种广泛使用的JavaScript库,简化了DOM操作、事件...

    html2canvas(1.0.0)

    3. 调用方法:使用`.then()`方法指定渲染完成后的回调函数,处理生成的Canvas或保存图片。 4. 参数配置:在创建实例时,可以传入配置对象,如设置允许渲染的DOM节点、忽略的CSS样式等。 四、常见问题与解决策略 1....

    HTML5 Canvas, flash version

    3. JavaScript API调用Canvas的绘图方法时,这些方法会被FlashCanvas捕获并转换为Flash的动作脚本命令。 4. Flash对象根据这些指令在自身内部进行绘制,然后将结果显示在页面上,使得用户看到与HTML5 Canvas相同的...

    html5 canvas时光隧道3D粒子动画特效

    1. **Canvas API**:Canvas API提供了丰富的绘图方法,如`fillRect`、`strokeRect`、`beginPath`、`moveTo`、`lineTo`、`arc`等,用于创建线条、形状、路径等。在这个3D粒子动画中,开发者会利用这些方法创建出粒子...

    HTML5 Canvas实现3D旋转物体动画及模糊发光特效源码

    3D旋转物体的实现主要依赖于Canvas的变换矩阵。在Canvas中,我们可以使用`save()`和`restore()`方法来保存和恢复当前的绘图状态,`translate()`、`rotate()`和`scale()`方法则可以对坐标系进行平移、旋转和缩放。...

    vnode2canvas基于Vue插件将虚拟DOM渲染到canvas中

    3. **布局计算**:由于canvas没有像DOM那样的布局系统,插件需要计算每个元素的位置,包括相对位置和大小,这可能涉及到CSS盒模型的理解。 4. **绘制到canvas**:最后,插件会根据解析和转换的结果,使用canvas的...

    小程序canvasDemo

    在微信小程序中,Canvas是一个非常重要的组件,它允许开发者在...以上就是关于"小程序canvasDemo"项目中涉及的主要技术点,通过学习和实践,你可以掌握微信小程序中canvas的使用技巧,进一步提升你的小程序开发能力。

    canvas绘制ascii码表文字3D旋转特效

    通过调用`canvas`对象上的方法,我们可以进行画线、填充形状、绘制图像等操作。 - 在HTML中,我们通过`<canvas>`标签创建一个画布,并通过`id`属性指定唯一标识,便于JavaScript访问。 2. **ASCII码表**: - ...

    ec-canvas动态加载

    8. **与ECharts的兼容性**:虽然EC-Canvas主要是为移动端设计,但它与ECharts保持了高度的API一致性,使得开发者在桌面端和移动端之间切换更为方便。 9. **动画效果**:EC-Canvas提供了丰富的动画效果,即使动态...

    html2canvas将HTML内容写入Canvas生成图片 uniapp

    - 最后,通过Canvas的toDataURL方法,可以将绘制好的Canvas内容转换为data URL,即可以直接使用的图片URL。 2. **uniAPP集成html2canvas**: - 在uniAPP项目中,可以通过npm或yarn安装html2canvas库,然后在...

    HTML5 canvas 3D文字云动画

    在这个案例中,canvas被用来创建3D文字云,这意味着我们需要用到canvas的路径绘制和变换方法,如`beginPath()`、`moveTo()`、`lineTo()`、`rotate()`等,以及文本相关的`fillText()`和`strokeText()`。 3D效果的...

    html5资料合集,主要讲Canvas

    Canvas通过JavaScript API提供了一组绘图方法,如`fillRect()`用于填充矩形,`beginPath()`和`stroke()`用于绘制路径,以及`arc()`用于绘制圆弧。此外,还可能讲解了如何处理图像、文字、渐变以及动画效果,这些都是...

    html5canvas亮度调整

    然后,在 JavaScript 中,你可以使用 `document.getElementById()` 方法获取到这个 `<canvas>` 元素,并通过 `getContext()` 方法获取到 2D 渲染上下文,这将是你进行图形操作的主要接口: ```javascript var ...

    html2Canvas截图加demo

    HTML2Canvas是一个JavaScript库,它的主要功能是在浏览器端将HTML内容转换为Canvas图像,进而可以进一步导出为图片格式,如JPEG、PNG等。这个工具对于网页开发者来说非常有用,因为它允许用户在不借助服务器端处理的...

Global site tag (gtag.js) - Google Analytics