zoukankan      html  css  js  c++  java
  • 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



  • 相关阅读:
    几种常用的曲线
    0188. Best Time to Buy and Sell Stock IV (H)
    0074. Search a 2D Matrix (M)
    0189. Rotate Array (E)
    0148. Sort List (M)
    0859. Buddy Strings (E)
    0316. Remove Duplicate Letters (M)
    0452. Minimum Number of Arrows to Burst Balloons (M)
    0449. Serialize and Deserialize BST (M)
    0704. Binary Search (E)
  • 原文地址:https://www.cnblogs.com/pgg200/p/2190700.html
Copyright © 2011-2022 走看看