HLJ 发布于
2018-08-20 10:59:03

HTML5 Canvas 图像加载

当HTML5 Canvas应用程序需要多个图像时,在绘制画布之前加载所有图像通常是个好主意。 为了简化加载过程,使用图像加载器函数很方便,该函数接收图像源的散列,创建图像散列,然后在加载所有图像时调用用户定义的函数。
html代码:
<!DOCTYPE HTML>
<html>
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <canvas id="myCanvas" width="578" height="200"></canvas>
    <script>
      function loadImages(sources, callback) {
        var images = {};
        var loadedImages = 0;
        var numImages = 0;
        // get num of sources
        for(var src in sources) {
          numImages++;
        }
        for(var src in sources) {
          images[src] = new Image();
          images[src].onload = function() {
            if(++loadedImages >= numImages) {
              callback(images);
            }
          };
          images[src].src = sources[src];
        }
      }
      var canvas = document.getElementById('myCanvas');
      var context = canvas.getContext('2d');

      var sources = {
        darthVader: 'https://www.html5canvastutorials.com/demos/assets/darth-vader.jpg',
        yoda: 'https://www.html5canvastutorials.com/demos/assets/yoda.jpg'
      };

      loadImages(sources, function(images) {
        context.drawImage(images.darthVader, 100, 30, 200, 137);
        context.drawImage(images.yoda, 350, 55, 93, 104);
      });

    </script>
  </body>
</html>

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2018-08-20/151.html
最后生成于 2023-06-18 18:37:52
此内容有帮助 ?
0