canvas图像以及剪切
图像篇:
代码:
1 /**
2 * Created by Administrator on 2016/1/28.
3 */
4 function draw (id){
5 var canvas = document.getElementById(id);
6 var context = canvas.getContext("2d");
7 var newImg = new Image();
8 newImg.src = "女孩.jpg";
9 newImg.onload = function (){
10 // onload 保证了图片的加载完成
11 // context.drawImage(newImg,0,0);
12 // context.drawImage(newImg,0,0,150,200);
13 // context.drawImage(newImg,0,0,100,100,0,0,120,120);
14 }
15 }
主要用到的方法,drawImage()。
格式有三种:
1)drawImage(image,x,y): image:所要添加的图像对象,图像坐标。
2)drawImage(image,x,y,width,height):添了个能改变图像大小的参数,后面两个数值用于确定图像的的大小,可用于缩放。
3)drawImage(image,sx,sy,swidth,sheight,x,y,Width,Height):

为方便记忆自己总结如下:
前四个数值用于确定剪切时图像的坐标及剪切后图像的宽度高度。被剪切图像 即 剪切后的图像。
后四个数值用于确定剪切后的图像的摆放位置坐标及剪切后图像设置的新的宽度和高度。
最后值得注意的是,drawImage()方法不仅可以放图像还可以放置画布和视频。
这里还应该注意onload的应用,它保证了图片加载完成即成功显示了图片。
* 放置画布时妙点领悟,可以把一个图片当成画布(背景),再在其上面绘制新的东西。*
剪切篇:
代码:
/**
* Created by Administrator on 2016/1/28.
*/
function draw (id){
var canvas = document.getElementById(id);
var context = canvas.getContext("2d");
var newImage = new Image();
newImage.src = "动漫人物多.jpg";
newImage.onload = function(){
// context.save();
ArcClip(context);
context.drawImage(newImage,0,0);
// context.restore();
context.globalAlpha = 0.6;
FillRect(context);
}
}
function FillRect(context){
context.beginPath();
context.rect(150,150,90,90);
context.fillStyle = "#f90";
context.fill();
}
function ArcClip(context){
context.beginPath();
context.arc(150,150,100,0,Math.PI*2,true);
context.clip();
}
分两种情况:
1)带有代码中的注释行时:会生成

2)不带代码中的注释行时:会生成

解释:有必要解释以下这里的剪切的含义,这里的剪切意思是,剪谁显示谁,类似与flash中的遮罩。
剪切主要用到的方法是 clip()。该方法没有参数,只是简单的裁剪路径。
globalAlpha()方法:相当与rgba中的a,是用于设置透明度的。
save()和restore()方法:这里首先调用save()方法保存了当前上下文的状态,用restore恢复了上下文的状态,
即剪切之前的状态。所有在接下来的绘制当中不再手剪切区域限制。
canvas图像以及剪切的更多相关文章
- Canvas中的剪切clip()方法
Canvas中的剪切 接下来我们要聊的不是图像的合成,而是Canvas中的另一个有用的功能:剪切区域.它是Canvas之中由路径所定义的一块区域,浏览器会将所有的绘图操作都限制在本区域内执行.在默认情 ...
- 【HTML5】Canvas图像
把一幅图像放置到画布上, 使用以下方法: drawImage(Img,x,y); 注:这里的Img必须是一个图像对象. 显示一个canvas图像: <!DOCTYPE html> &l ...
- canvas图像保存
很多时候绘制完成的图片需要保存,那么我们就可以使用到Canvas API来完成这最后一步! Canvas API使用toDataURL方法把绘画的状态输出到一个data URL中然后重新装载,然后我们 ...
- 如何实现Canvas图像的拖拽、点击等操作
上一篇Canvas的博文写完后,有位朋友希望能对Canvas绘制出来的图像进行点击.拖拽等操作,因为Canvas绘制出的图像能很好的美化.好像是想做炉石什么的游戏,我也没玩过. Canvas在我的理解 ...
- PHP《将画布(canvas)图像保存成本地图片的方法》
用PHP将网页上的Canvas图像保存到服务器上的方法 2014年6月27日 歪脖骇客 发表回复 8 在几年前HTML5还没有流行的时候,我们的项目经理曾经向我提出这样一个需求:让项目评审专家们在评审 ...
- Canvas 实现图片剪切
用户上传头像然后截图的需求很常见,很多做法是把图像发送到后端,把裁剪后的结果发送给浏览器,这种方式会增加处理时延.最近正好学习了HTML5里的canvas,发现它的图片处理功能比较强大,就打算用can ...
- HTML5 canvas图像绘制方法与像素操作属性和方法
图像绘制方法 drawImage() 向画布上绘制图像.画布或视频 像素操作属性和方法 width 返回 ImageData ...
- HTML5 Canvas图像放大、移动实例1
1.前台代码 <canvas id="canvasOne" class="myCanvas" width="500" height=& ...
- HTML canvas图像裁剪
canvas drawImage方法的图像裁剪理解可能会比较耗时,记录一下,以便供人翻阅! context.drawImage(img,sx,sy,swidth,sheight,x,y,width,h ...
随机推荐
- K8s API
https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#daemonset-v1-apps http://docs.k ...
- Javascript中一些常用的宽与高
在使用javascript制作一些网络特效时,往往要根据显示网页的显示器的一些参数展开进行.所以一些关于显示器的参数如何得到显得十分重要.下面是一些常用的显示器参数,不妨好好记一下吧! 网页可见区域宽 ...
- oracle 计算时间差
1.计算时间差(相隔星期,天数,小时,分钟,秒) SELECT TO_CHAR(date1,'MMDDYYYY:HH24:MI:SS') date1, TO_CHAR(date2,'MMDDYYYY: ...
- MYSQL数据库字段命名及设计规范
1.设计原则 1) 标准化和规范化数据的标准化有助于消除数据库中的数据冗余.标准化有好几种形式,但 Third Normal Form(3NF)通常被认为在性能.扩展性和数据完整性方面达到了最好平衡. ...
- RPC与HTTP
一.为什么需要RPC,而不是简单的HTTP接口? RPC(即Remote Procedure Call,远程过程调用),主要是基于TCP/IP协议:而HTTP服务主要是基于HTTP协议的.我们都知道H ...
- 【P1886】滑动窗口(单调队列→线段树→LCT)
这个题很友好,我们可以分别进行简单难度,中等难度,恶心难度来做.然而智商没问题的话肯定是用单调队列来做... 板子题,直接裸的单调队列就能过. #include<iostream> #in ...
- Java -- 利用反射 操作任意数组,包括对象数组 和 基本数据类型的数组
items为任意数组
- JAVA设计模式初探之组合模式
先看看组合模式的定义吧:“将对象组合成树形结构以表示‘部分-整体’的层次结构.组合模式使得用户对单个对象和组合对象的使用具有一致性.” 就拿剪发办卡的事情来分析一下吧. 首先,一张卡可以在总部,分店, ...
- 考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件.踩坑若干,够一篇文章了. 重要警告 没事不要读PHP的官方中文文档!版本跟不上坑死你! 不同版本PHP ...
- jsp:tld标签
z注意每个uri地址要保持统一 1.创建MytagPrinta.java文件 package cn.tag; import java.io.IOException; import javax.serv ...