• 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



  • 相关阅读:
    23个精美的的国外网站设计作品推荐欣赏
    javascript / js数据类型,数据类型转换
    让人兴奋的视差滚动(Parallax Scrolling)效果网站分享
    手机网页应用的交互设计
    qq空间等闪动的文字怎么做?
    用CSS实现首字下沉效果,仿word的首字下沉
    35 套精美的 PSD 图标素材,网页素材下载
    使用纯CSS实现圆角边框并完美兼容
    推荐给 JavaScript 开发者十款超级有用的工具来提高客户体验
    40款非常漂亮的 HTML5 & CSS3 网站模板免费下载欣赏
  • 原文地址:https://www.cnblogs.com/pgg200/p/2190700.html
Copyright © 2020-2023  润新知