• HTML5学习笔记(3)——canvas图片


      在canvas有关于图片的操作中最主要也是最重要的就是drawImage函数了,所以我们只要掌握了drawImage的用法也就基本掌握了canvas有关于图片的操作了。

      drawImage()函数一共有以下三种形式:

      1.drawImage(image,dx,dy)    接受一个image图片,并将该图片绘制到canvas中。image可以是已经存在的<img>元素,或者是通过Javascript创建的图片元素;给出的坐标(dx,dy)代表图片左上角的位置。

      2.drawImage(image,dx,dy,dw,dy)   接受一个image图片,将其缩放为宽度为dw和高度为dy,然后把它绘制到canvas上的(dx,dy)位置。

      3.drawImage(image,sx,sy,sw,sh,dx,dy,dw,dh)  接受一个图片,通过参数(sx,sy,sw,sh)指定图片的裁剪位置,缩放到(dw,dh)的大小,最后把它绘制到canvas上的(dx,dy)位置。这个有点类似于css sprite背景定位技术,不过这个比css sprite更具有灵活性。

      下面给大家讲解一个例子,让大家对drawImage这三种有更深刻的掌握。

      在此之前,们先在images文件夹中准备两张图片,分别为duck.png和micky.png,duck.png中为一只唐老鸭,micky.png中有三只米老鼠,如下图(1)、图(2)所示:

    图(1) duck.png

    图(2)micky.png

      以下代码将全面地给大家演示drawImage的三种用法:

    //利用已有的<img>创建图像
    var canvas = document.getElementById("e"); //得到已有canvas元素的节点
    var context = canvas.getContext("2d"); //设置canvas元素节点
    var duck = document.getElementById("duck"); //得到已有<img>元素的节点
    context.drawImage(duck,0,0); //drawImage用法1,image为已有的<img>元素
    //
    利用Image()类来创建图像
    var duck2 = new Image();
    duck2.src="images/duck.png";
    context.drawImage(duck2,0,250); //drawImage用法1,image通过Javascript创建的元素

    //缩小版的鸭子
    context.drawImage(duck2,0,500,160/2,226/2); //drawImage用法2,图片的大小为原来的1/2

    //米老鼠
    var micky = new Image();
    micky.src="images/micky.png";
    context.drawImage(micky,250,0); //全部显示出来
    context.drawImage(micky,175,0,175,226,250,250,175,226); //drawImage用法3,截取出第二只米老鼠
    context.drawImage(micky,350,0,180,226,450,250,180*1.4,226*1.4); //drawImage用法3,截取出最后一只米老鼠,并且放大到1.4倍

      那么在chrome中的运行结果如下:

      到此为止,HTML5当中的图片绘制的drawImage用法就给大家介绍完了。

      demo演示地址:http://xiaowu.shnow.cn/html5/note3/index.html



  • 相关阅读:
    正则入门小随
    用栈求简单算术表达式的值
    数据结构复习
    数据结构笔记(第九章)
    数据结构笔记(第八章)
    Java第三阶段学习(十四、JSP动态页面、EL表达式、JSTL标签库)
    Java第三阶段学习(十三、会话技术、Cookie技术与Session技术)
    Java第三阶段学习(十二、HttpServletRequest与HttpServletResponse)
    Java第三阶段学习(十一、Servlet基础、servlet中的方法、servlet的配置、ServletContext对象)
    Java第三阶段学习(十、XML学习)
  • 原文地址:https://www.cnblogs.com/pgg200/p/2190700.html
Copyright © 2020-2023  润新知