HTML5 CANVAS:绘制图片

通过前面的学习,我们现在已经可以在HTML5 canvas中绘制图形和文字,并给它们设置一些样式。我们还可以在中绘制图片。用于在作为绘制源的图片可以是下面的几种元素类型:

HTMLImageElement:可以是由Image()构造函数创建的图片,也可以是任何的元素。

HTMLVideoElement:使用一个HTML元素作为图片源,会从视频中截取当前帧作为图片源。

HTMLCanvasElement:也可以使用另一个元素作为图片源。

绘制图片

我们可以通过2D上下文的三种方法来在drawImage(image, dx, dy);

drawImage(image, dx, dy, dw, dh);

drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dw, dh);

基本绘制图片方法:drawImage(image, dx, dy)

这个方法是在

下面是一个例子。这个例子在var ctx = document.getElementById('ex1').getContext('2d');

var img = new Image();

img.onload = function(){

ctx.drawImage(img,0,0);

};

img.src = 'img/canvas-image-1.jpg';上面的代码的返回结果如下:

绘制并缩放图片:drawImage(image, dx, dy, dw, dh)

第二种在下面的例子中,我们将绘制的图片缩小1/3左右,然后将它重复排列形成一个网格。var ctx = document.getElementById('ex2').getContext('2d');

var img = new Image();

img.onload = function(){

for (var i=0;i<4;i++){

for (var j=0;j<5;j++){

ctx.drawImage(img,j*60,i*60,60,60);

}

}

};

img.src = 'img/canvas-image-2.jpg';

上面的代码的返回结果如下:

图片切片方法:drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dw, dh)

第三种在中绘制图片的方法有8个参数。image是源图片,sx和sy是“sourceX”和“sourceY”的简写,这两个参数决定从什么位置开始在源图片上裁剪出一个矩形区域,这个区域的图片将会被绘制在Canvas中。sWidth和sHeight表示矩形区域的宽度和高度。剩下的4个参数和上面的绘制图片方法中的描述相同。看下面的图片,图片上标出了各个参数的位置。

来看下面的一个例子。这个例子中,我们将源图片剪裁出一部分,然后将它绘制在canvas的一个边框图片之上。var canvas = document.getElementById('ex3');

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

// 绘制图片切片

ctx.drawImage(document.getElementById('source'),

98, 205, 104, 124, 21, 20, 87, 104);

// 绘制边框图片

ctx.drawImage(document.getElementById('frame'),0,0);上面的代码得到的结果如下:

创建和调用图片

在你能够在Canvas中绘制图片之前,你需要创建一个Image对象,然后将图片加载到内存中。下面是完成这个操作的js代码:var image = new Image();

image.src = "img/sample.png";

在你能够绘制图片之前,图片必须被完全加载。为了确保图片被完全加载,你可以为图片添加一个事件监听,这个事件监听中的方法会在图片被完全加载之后被调用。下面是一个示例代码:image.addEventListener('load', drawImage1);或者:var img = new Image();

img.onload = function(){

ctx.drawImage(img,0,0);

};

以上就是HTML5 CANVAS:绘制图片的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

html5canvas绘制图片源码,HTML5 CANVAS:绘制图片相关推荐

  1. html canvas图片上绘制文字,如何用HTML5 CANVAS绘制文字

    您可能感兴趣的话题: 绘制文字 核心提示:如何在HTML5 canvas上绘制绘制文字,并且可以设置文字的字体,大小和颜色. 我们可以在HTML5 canvas上绘制绘制文字,并且可以设置文字的字体, ...

  2. 前端与java绘制三维图_使用HTML5 Canvas绘制三维波浪图算法和实现

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 // the algorithm comes entirely from here: http://www. ...

  3. html5 canvas绘制图形,html5 Canvas绘制图形入门详解

    html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏览器(FireFox.Chrome. ...

  4. html5canvas绘制时钟,JavaScript html5 canvas绘制时钟效果

    本文实例讲述了JavaScript+html5 canvas绘制时钟效果.分享给大家供大家参考,具体如下: HTML部分: canvas绘图 JavaScript部分: function init() ...

  5. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)

    HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 原文:HTML5 canvas绘制雪花飘落动画(需求分析.知识点.程序编写分布详解) 看到网上很多展示html5雪花飞动 ...

  6. 使用 HTML5 Canvas 绘制出惊艳的水滴效果

    HTML5 在不久前正式成为推荐标准,标志着全新的 Web 时代已经来临.在众多 HTML5 特性中,Canvas 元素用于在网页上绘制图形,该元素标签强大之处在于可以直接在 HTML 上进行图形操作 ...

  7. html5 Canvas 绘制基本图形 从直线图形到使用路径 - 直线、矩形、路径、多边形、复杂组合图形

    html5: Canvas 绘制基本图形 从绘制直线 到 路径 Jack Lee 的 CSDN 博客 邮箱 :291148484@163.com CSDN 主页:https://blog.csdn.n ...

  8. 在html画一个自动缩放圆环,使用html5 canvas绘制圆环动效

    最近笔者有个需求,需求内容为:一组文字显示在圆环的周围,用户可添加文字,文字围绕着圆环,每个词对应圆环周围的的蓝色小圆点,当用户鼠标放在圆环上方小蓝点时时,实现放射出三角形,再显示出文字,先看看动图效 ...

  9. java canvas 画图片_[Java教程][HTML5] Canvas绘制简单图片

    [Java教程][HTML5] Canvas绘制简单图片 0 2016-05-13 13:00:04 获取Image对象,new出来 定义Image对象的src属性,参数:图片路径 定义Image对象 ...

最新文章

  1. 网易SRC指责白帽子私自披露已修复漏洞,强势表态违刑必究
  2. webgl值得重视的基础构建
  3. 使用shiro安全管理
  4. B. super_log(2019ICPC区域网络赛南京站)
  5. Comware、VRP、IOS这些操作系统平台你分清了吗?
  6. php表白情话,向一个人表白 抖音最火99句情话告白
  7. oracle数据库安装HotSpot,安装Oracle数据库软件遭遇诡异的HotSpot Virtual Machine Error : 11报错...
  8. Ubuntu配置完全教程
  9. php flush nginx,Nginx+phpfastcgi下flush输出问题
  10. 何恺明组又出神作!最新论文提出全景分割新方法
  11. phpstudy本地搭建域名访问
  12. ThinkPhp框架:父类及表单验证
  13. linux线程计算,有关Linux进程与线程数目计算的问题
  14. vscode运行vue时,显示loader. js SyntaxError: Unexpected identifier
  15. 火车票放票时间 潜规则
  16. PictureBox滚动条、鼠标中轴滚动
  17. 数据库信息查询(作者不是我)
  18. 170925_Spring Cloud 微服务实战(翟永超著) 读书笔记(二)_什么是Spring Cloud Eureka?
  19. 思科服务器a设置dns信息,思科怎么配置dns服务器
  20. [UE4]材质中的UV理解(UV是什么)

热门文章

  1. python函数myproduct_OpenERP与Python 元编程
  2. word打开老是配置进度_word怎么转pdf?两个值得学习的高效转换法
  3. 【泛型高级-通配符】
  4. mysql8.0 安装 修改密码 允许远程连接
  5. STRUTS学习笔记
  6. redhat linux 5.6 下安装oracle 11g 时netca报错不能配置监听解决方法
  7. 查看磁盘I/O操作信息
  8. Emacs之删除整列操作
  9. Beyond Compare “许可证密钥已被撤销”解决
  10. 理解Go的Goroutine和channel