zoukankan      html  css  js  c++  java
  • html5在canvas中插入图片

     canvas loading...

    在canvas中显示图片非常简单。可以通过修正层为图片添加印章、拉伸图片或者修改图片等,并且图片通常会成为canvas上的焦点。用HTML5 Canvas API内置的几个简单命令可以轻松地为canvas添加图片内容。

    不过,图片增加了canvas操作的复杂度:必须等到图片完全加载后才能对其进行操作。浏览器通常会在页面脚本执行的同时异步加载图片。如果试图在图片未完全加载之前就将其呈现到canvas上,那么canvas将不会显示任何图片。因此,开发人员要特别注意,在呈现之前,应确保图片已经加载完毕。

    为保证在呈现之前图片已完全加载,我们提供了回调,即仅当图像加载完成时才执行后续代码,如代码清单如下所示。

    <script type="text/javascript">
    function drawBeauty(beauty){
    var mycv = document.getElementById("cv");  
    var myctx = mycv.getContext("2d");
    myctx.drawImage(beauty, 0, 0);
    }
    function load(){
    var beauty = new Image();  
    beauty.src = "http://images.cnblogs.com/cnblogs_com/html5test/359114/r_test.jpg"; 
    if(beauty.complete){
       drawBeauty(beauty);
    }else{
       beauty.onload = function(){
         drawBeauty(beauty);
       };
       beauty.onerror = function(){
         window.alert('美女加载失败,请重试');
       };
    };   
    }//load
    if (document.all) {
      window.attachEvent('onload', load);  
      }else {  
      window.addEventListener('load', load, false);
      }
    </script>
    

    基本绘画

    在最基本的画图操作中,你需要的只是希望图像出现处的位置(x和y坐标)。图像的位置是相对于其左上角来判断的。使用这种方法,图像可以简单的以其原尺寸被画在画布上。

    drawImage(image, x, y)
    var canvas = document.getElementById(‘myCanvas’);
    var ctx = canvas.getContext(’2d’);ctx.drawImage(myImage, 50, 50);
    ctx.drawImage(myImage, 125, 125);
    ctx.drawImage(myImage, 210, 210);
     

    缩放及调整尺寸

    改变图像的尺寸,你需要使用重载的drawImage函数,提供给它希望的宽度和高度参数。

    drawImage(image, x, y, width, height)
    var canvas = document.getElementById(‘myCanvas’);
    var ctx = canvas.getContext(’2d’);ctx.drawImage(myImage, 50, 50, 100, 100);
    ctx.drawImage(myImage, 125, 125, 200, 50);
    ctx.drawImage(myImage, 210, 210, 500, 500);

    图像裁剪

    最后一个drawImage方法的功用是对图像进行裁剪。

    drawImage(image,
    sourceX,
    sourceY,
    sourceWidth,
    sourceHeight,
    destX,
    destY,
    destWidth,
    destHeight)

    参数很多,但基本上你可以把它想成从原图中取出一个矩形区域,然后把它画到画布上目标区域里。

  • 相关阅读:
    Asp.net 动态添加Meta标签
    【转】在SharePoint Server 2010中更改“我的网站”
    SPQuery DateTime 类型查询
    Asp.net Web Application 打开 SharePoint 2010 Site 错误 The Web application at could not be found
    How To Create SharePoint 2010 Site Collection In Its Own DB
    C# 文件打印
    面试题 java集合
    《深入理解Java虚拟机》(六)堆内存使用分析,垃圾收集器 GC 日志解读
    《深入理解Java虚拟机》(五)JVM调优
    《深入理解Java虚拟机》(四)虚拟机性能监控与故障处理工具
  • 原文地址:https://www.cnblogs.com/html5test/p/2375558.html
Copyright © 2011-2022 走看看