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

HTML5 Canvas drawImage图像绘制

阅读更多

 

HTML5中引入新的元素canvas,其drawImage 方法允许在 canvas 中插入其他图像( img 和 canvas 元素) 。drawImage函数有三种函数原型:

语法:

drawImage(image, dx, dy) 
drawImage(image, dx, dy, dw, dh) 
drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)

*第一个参数image可以用HTMLImageElement,HTMLCanvasElement或者HTMLVideoElement作为参数。
*dx、dy是image在canvas中定位的坐标值;
*dw、dh是image在canvas中即将绘制区域(相对dx和dy坐标的偏移量)的宽度和高度值;
*sx、sy是image所要绘制的起始位置;
*sw、sh是image所要绘制区域(相对image的sx和sy坐标的偏移量)的宽度和高度值。

 

/*绘制图片
drawImage(x,y);
HTML5中引入新的元素canvas,其drawImage 方法允许在 canvas 中插入其他图像( img 和 canvas 元素) 。drawImage函数有三种函数原型:

drawImage(image, dx, dy)
drawImage(image, dx, dy, dw, dh)
drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh)

*第一个参数image可以用HTMLImageElement,HTMLCanvasElement或者HTMLVideoElement作为参数。
*dx、dy是image在canvas中定位的坐标值;
*dw、dh是image在canvas中即将绘制区域(相对dx和dy坐标的偏移量)的宽度和高度值;
*sx、sy是image所要绘制的起始位置;
*sw、sh是image所要绘制区域(相对image的sx和sy坐标的偏移量)的宽度和高度值。
*/
function drawImage() {
Ca();
var canvas = draw();
var image = new Image();
image.src = "_image.png";
image.onload = function () {
for (var i = 0; i < 5; i++) {
canvas.drawImage(image, i * 50, i * 25, 379, 80);
}
};
}

 

接下来我们来画一个局部特写的图片和一组平铺图片

 

/*局部绘制
这里我们利用宽高可控制缩放
*/
function drawImageArea() {
Ca();
var canvas = draw();
var image = new Image();
image.src = "_image.png";
image.onload = function () {
canvas.drawImage(image, 180, 20, 100, 60, 50, 25, 379, 80);
};
}
/*图片
createPattern 可以实现平铺图片
createPattern(image,type)
image为要平铺的图像
type分为:
no-repeat:不平铺
repeat-x:横向平铺
repeat-y:纵向平铺
repeat:整体平铺
*/
function drawImagePingPu() {
Ca();
var canvas = draw();
var image = new Image();
image.src = "_image.png";
image.onload = function () {
var pp = canvas.createPattern(image, 'repeat');
canvas.fillStyle = pp;
canvas.fillRect(0, 0, wh.width, wh.height);
};
}

 

最后我们看一下剪裁图片,剪裁要与路径配合使用,通过路径与图像交叉的形式,调用clip方法剪裁图像。

 

/*图片剪裁
通过路径与图像交叉的形式,调用clip方法剪裁图像
*/
function drawImageClip() {
Ca();
var canvas = draw();
var image = new Image();
canvas.save();//保存当前画布
image.onload = function () {
canvas.beginPath();
canvas.arc(220, 100, 100, 0, 2 * Math.PI, true);//创建圆形剪裁路径
canvas.clip();//剪裁
canvas.drawImage(image, 180, 20, 100, 60, 50, 25, 379, 80);
};
image.src = "_image.png";

}

更多信息请查看 java进阶网 http://www.javady.com/index.php/category/thread

分享到:
评论

相关推荐

    3.2 使用drawImage绘制图像|Canvas图像基础|Canvas图形、动画、游戏开发从入门到精通全系列课程

    3.2_使用drawImage绘制图像|Canvas图像基础|Canvas图形、动画、游戏开发从入门到精通全系列课程

    HTML5 Canvas核心技术 图形、动画与游戏开发

    208 4.7 以图像制作动画 211 4.8 图像绘制的安全问题 216 4.9 性能 216 4.9.1 对比drawimage(htmlimage)、drawimage(htmlcanvas)与putimagedata()的绘图效率 217 4.9.2 在canvas中绘制另一个canvas与绘制普通...

    HTML5使用drawImage()方法绘制图像

    使用drawImage()方法绘制图像。绘图环境提供了该方法的三个不同版本。 drawImage(image,x,y) : 在canvas中(x,y)处绘制图片。 drawImage(image,x,y,width,height) : 在canvas中(x,y)处绘制图片,并将其缩放到指定的...

    一步步教你利用Canvas对图片进行处理

    Canvas,中文译为“画布”,HTML5中新增了&lt;canvas&gt;元素,可以结合JavaScript动态地在画布中绘制图形。 今天,我们不讲Canvas的图形绘制,而是讲如何对图片进行处理,话不多说了,来一起看看详细的介绍吧。 大概流程...

    教你使用Canvas处理图片的方法

    Canvas,中文译为“画布”,HTML5中新增了&lt;canvas&gt;元素,可以结合JavaScript动态地在画布中绘制图形。 今天,我们不讲Canvas的图形绘制,而是讲如何对图片进行处理。 大概流程非常简单,主要分为以下三个步骤: 是...

    【HTML5】Canvas绘制简单图片教程

    重载方法,调用context对象的drawImage()方法,参数:Image对象,x坐标,y坐标,图像宽度,高度     重载方法,调用context对象的drawImage()方法, 参数: Image对象,图像上x坐标,图像上y坐标,矩形宽度,矩形...

    canvas-exif-orientation:根据 Exif 方向在画布上绘制图像

    画布 Exif 方向根据 Exif 方向在画布上绘制图像。 var CanvasExifOrientation = require ( 'canvas-exif-orientation' ) ;// drawn canvas element.var canvas = CanvasExifOrientation . drawImage ( img , ...

    HTML5Canvas像素处理常用接口

    demo_01如下:demo说明:加载xiangjishi.png,加载完成后,从相对于画布左上角坐标(0,0)处开始,将xiangjishi.png绘制在画布上,效果如下:看到这里,可能对于context.drawImage(image,x,y,width,height)里四个参

    demo_canvas.zip

    长方形(Rect)、线条(stroke)、填充(fill)、圆(arc)、贝塞尔(bezier)、图像绘制(drawImage)

    canvas离屏技术与放大镜实现代码示例

    除了绘制图像,这个接口还可以: 将一个 canvas 对象绘制到另一个 canvas 对象上 。这就是离屏技术。 2. 实现水印和中心缩放 在代码中,有两个 canvas 标签。分别是可见与不可见。 不可见的 canvas 对象上的 ...

    JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析

    彩色图片加载完成后,使用 drawImage() 将图片加载到上下文,调用用于完成剩余绘制工作的 getColorData()和 putColorData();最后为myImage指定彩色图片的路径。 2、getColorData() 使用 getImageData()将图像复制到...

    manray:Manray -fabric.js 画布数据的流式图像渲染器

    使用drawImage()在画布上绘制 SVG 时,即使来自同源或使用 base64 数据也会污染您的画布并阻止您在画布上调用getImageData() 。 这是通过让 Manray 从 JSON 为您进行渲染来规避该限制的一种简单方法。 ###如何...

    java--拼图游戏源代码

    //将指定位置的图像块绘制到Buffer中 for(int j=0;j;j++) for(int i=0;i;i++) if(map[i][j]!=15) drawSegment(map[i][j],i,j); //向Screen绘制buffer中的图像 gs.drawImage(buff,0,0,screen); } ...

    Java拼图游戏面向对象课程设计报告.doc

    " "//加载图片容器,定义可以显式定位子元素使用坐标是相对 Canvas " "区域的区域,绘制图形 " "private Graphics gs; //gs画出Canvas图片坐标 " "private Graphics gb; //gb画出buff图像 " "private boolean is...

Global site tag (gtag.js) - Google Analytics