• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5 之6 __Canvas: 插入图片, 图片加载完时执行回调

HTML5 之6 __Canvas: 插入图片, 图片加载完时执行回调

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,Canvas,执行回调等相关知识,匿名希望在学习及工作中可以帮助到您
使用canvas API 内置的几个简单命令可以轻松地为canvas 添加图片内容,

应当注意: 必须等到图片完全加载后才能对其进行操作, 浏览器通常会在页面脚本执行的同时异步加载图片。 如果试图在图片未完全加载之前就将其呈现到canvas 上,将不会显示任何图片.

以下示例将加载一张树皮纹理的图片 作为树干以供 canvas 使用. 为保证在呈现之前图片忆完全加载, 这里提供了回调方法, 即仅当图像加载完 时才执行后续代码


<!DOCTYPE html>
<html>
  <title>Image example</title>
  <canvas id="trails" style="border: 1px solid;"  width="400" height="400"> </canvas>
  <script>
        // 加载纹理图片
        var bark = new Image();
        bark.src = "bark.jpg";

        // 图片加载完后,将其显示在canvas 上
        bark.onload = function () {
            drawTrails();
        }

        function createCanopyPath(context) {
            context.beginPath();
            context.moveTo(-25, -50);
            context.lineTo(-10, -80);
            context.lineTo(-20, -80);
            context.lineTo(-5, -110);
            context.lineTo(-15, -110);

            context.lineTo(0, -140);

            context.lineTo(15, -110);
            context.lineTo(5, -110);
            context.lineTo(20, -80);
            context.lineTo(10, -80);
            context.lineTo(25, -50);
            context.closePath();
        }

        function drawTrails() {
            var canvas = document.getElementById('trails');
            var context = canvas.getContext('2d');
            context.save();
            context.translate(130, 250);

            createCanopyPath(context);

            context.lineWidth = 4;
            context.lineJoin = 'round';
            context.strokeStyle = '#663300';
            context.stroke();

            context.fillStyle = '#339900';
            context.fill();

            // 用背景图案填充 作为树干的矩形
            context.drawImage(bark, -5, -50, 20, 70);
            context.restore();

            context.save();
            context.translate(-10, 350);
            context.beginPath();
            context.moveTo(0, 0);
            context.quadraticCurveTo(170, -50, 260, -190);
            context.quadraticCurveTo(310, -250, 410,-250);
            context.strokeStyle = '#663300';
            context.lineWidth = 10;
            context.stroke();
            context.restore();
        }
  </script>
</html>

运行效果图


可以看到, 为bark.jpg图片添加了onload 函数,以保证仅在图像加载完成时才调用 drawTrails 函数.


附件, bark.jpg 图片:


以上就是HTML5 之6 __Canvas: 插入图片, 图片加载完时执行回调的内容,更多相关内容请关注微课江湖()!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03html5实现一个简单的多人飞机游戏实例详解
  • 2017-08-06简单介绍HTML5中的文件导入
  • 2017-08-06深入解析HTML5中的Blob对象的使用
  • 2017-08-06HTML5离线缓存在tomcat下部署可实现图片flash等离线浏览
  • 2018-12-03HTML5 WebSQL四种基本操作的介绍
  • 2018-12-03HTML5属性:form表单属性的用法实例
  • 2017-08-06HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
  • 2018-12-03介绍几个超炫酷的HTML5动画演示及源码的图文详解
  • 2018-12-03html5中返回音频/视频是否已暂停的属性paused
  • 2018-12-03HTML5调用摄像头的示例代码分享

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
    • WebGL怎样操作json与echarts图表
    • 用HTML5制作一个简单的弹力球游戏
    • html5 shiv.js和respond.min.js详细介绍
    • Angular2应该如何学习?
    • 基于HTML5 audio元素播放声音jQuery小插件
    • HTML5 Canvas draw方法制作动画效果示例_html5教程技巧
    • node.js中文件之间的引入教程实例
    • html5教程制作简单画板代码分享
    • 简单的Material Design风格手机App菜单特效

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有