1.7.1 绘制图像绘制图像需要使用 drawImage() 方法。此方法需要一个图像对象和一个起始点坐标作为参数,其

中起始点坐标是相对于canvas的左上角的位置。如:

context.drawImage(imageObj, x, y);

效果图

代码

}

#myCanvas {

border: 1px solid #9C9898;

}

window.onload = function() {

var canvas = document.getElementById("myCanvas");

var context = canvas.getContext("2d");         var imageObj = new Image();

imageObj.onload = function() {           context.drawImage(imageObj, 69, 50);

};

imageObj.src =

"http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg";       };

关于图像的说明

由于 drawImage() 方法需要一个图像对象作为参数,所以我们需要在实际调用 drawImage() 之前就加载图像。这一要求可以通过图像对象的 onload 事件来实现。不过要注意的是, onload 应该在用图像对象的src属性指定图像来源之前就进行赋值。

1.7.2 图像尺寸

方法 drawImage() 还可以接受 destWidth 和 destHeight 两个参数用来以任意指定的尺寸显示图像。如:

context.drawImage(imageObj, x, y, width, height);

效果图

代码

}

#myCanvas {

border: 1px solid #9C9898;

}

window.onload = function() {

var canvas = document.getElementById("myCanvas");         var context = canvas.getContext("2d");

var x = 188;         var y = 130;         var width = 200;         var height = 137;         var imageObj = new Image();

imageObj.onload = function() {

context.drawImage(imageObj, x, y, width, height);

};

imageObj.src =

"http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg";       };

1.7.3 图像裁剪

方法 drawImage() 还可以增加另六个参数来实现对图像的裁剪。这六个参数是, sourceX,

sourceY, sourceWidth, sourceHeight, destWidth 和 destHeight。这六个参数对应的含义可以参阅后面的示意图。

context.drawImage(imageObj, sx, sy, sw, sh, dx, dy, dw, dh);

效果图

代码

}

#myCanvas {

border: 1px solid #9C9898;

}

window.onload = function() {

var canvas = document.getElementById("myCanvas");         var context = canvas.getContext("2d");         var imageObj = newImage();

imageObj.onload = function() {           // 绘制剪裁的图像

var sourceX = 150;           var sourceY = 0;           var sourceWidth = 150;           var sourceHeight = 150;           vardestWidth = sourceWidth;           var destHeight = sourceHeight;           var destX = canvas.width / 2 - destWidth / 2;           vardestY = canvas.height / 2 - destHeight / 2;

context.drawImage(imageObj, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight);

};

imageObj.src =

"http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg";

};

1.7.4 图像加载器

当在canvas中要使用多幅图像的时候,最好是在绘制图像之前就把图像全部加载。一个方便的办法是用一个图像加载函数一下在把图像全加载进图像对象中来,然后再调用一个用户定义的函数。效果图

代码

}

#myCanvas {

border: 1px solid #9C9898;

}

function loadImages(sources, callback) {

var images = {};         var loadedImages = 0;

var numImages = 0;         // 获取图像源的数量

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];

}

}

window.onload = function(images) {

var canvas = document.getElementById("myCanvas");         var context = canvas.getContext("2d");

var sources = {           darthVader: "http://www.html5canvastutorials.com/demos/assets/darth-vader.jpg",           yoda:

"http://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);

});

};

有哪些开源html5的组态软件,FScada组态软件相关推荐

  1. 开源纯C#工控网关+组态软件(九)定制Visual Studio

    一.   引子 因为最近很忙(lan),很久没发博了.不少朋友对那个右键弹出菜单和连线的功能很感兴趣,因为VS本身是不包含这种功能的.   大家想这是什么鬼,怎么我的设计器没有,其实这是一个微软黑科技 ...

  2. 开源纯C#工控网关+组态软件(八)表达式编译器

    一.   引子 监控画面的主要功能之一就是跟踪下位机变量变化,并将这些变化展现为动画.大部分时候,界面上一个图元组件的某个状态,与单一变量Tag绑定,比如电机的运行态,绑定一个MotorRunning ...

  3. 开源纯C#工控网关+组态软件(七)数据采集与归档

    一.   引子 在当前自动化.信息化.智能化的时代背景下,数据的作用日渐凸显.而工业发展到如今,科技含量和自动化水平均显著提高,但对数据的采集.利用才开始起步. 对工业企业而言,数据采集日益受到重视, ...

  4. 开源纯C#工控网关+组态软件(六)图元组件

    一.   图元概述 图元是构成人机界面的基本单元.如一个个的电机.设备.数据显示.仪表盘,都是图元.构建人机界面的过程就是铺排.挪移.定位图元的过程. 图元设计是绘图和编码的结合.因为图元不仅有显示和 ...

  5. 开源纯C#工控网关+组态软件(五)从网关到人机界面

    一.   引子 之前都在讲网关,不少网友关注如何实现界面.想了解下位机变量变化,是怎样一步步触发人机界面动画的. 这个步步触发,实质上是变量组(Group)的批量数据变化(DataChange)事件, ...

  6. 开源纯C#工控网关+组态软件(四)上下位机通讯原理

    一.   网关的功能:承上启下 最近有点忙,更新慢了.感谢园友们给予的支持,现在github上已经有.目标是最好的开源组态,看来又近一步^^ 之前有提到网关是物联网的关键环节,它的作用就是承上启下. ...

  7. 开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7

    一.   引子 首先感谢博客园:第一篇文章.第一个开源项目,算是旗开得胜.可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^. 园友给了我很多支持,并提出了很好的改进意见.现加入屏幕分辨率自 ...

  8. 工控用Web组态软件比组态软件更高效

    从事相关工作的对"组态软件"应该都不陌生,那Web组态软件又是什么呢?本文将对Web组态可视化软件(下称"Web组态软件")做简单介绍,可视化编辑器是Web组态 ...

  9. html5脑图_基于HTML5的三维思维导图软件开发技术研究

    龙源期刊网 http://www.qikan.com.cn 基于 HTML5 的三维思维导图软件开发技术 研究 作者:汪升华 唐国纯 来源:<软件工程> 2017 年第 10 期 摘 要: ...

  10. xgplayer.js 西瓜播放器 - 字节跳动团队出品的免费开源 HTML5 视频播放组件,内置解析器、也能节省流量

    一个功能强大,符合国内视频播放业务的 web 视频播放组件,由西瓜视频技术团队官方出品. 关于西瓜播放器 西瓜播放器 (xgplayer.js) 不是一个看片软件,而是一个 Web 开发上的视频播放器 ...

最新文章

  1. Delphi资源文件的应用(转)
  2. 网站分类前导:获取网站标题和描述及对相关信息进行分词处理
  3. spring jms同时使用queue和持久topic订阅
  4. 16个烧光你脑细胞的悖论
  5. 谈谈JAVA中的安全发布
  6. 腾讯视频怎么开启禁止界面硬件加速
  7. [ZT]图像处理库的比较:OpenCV,FreeImage,CImg,CxImage
  8. SpringCloud(二) 生产者、消费者工程搭建与调用(下)
  9. mysql查询修改数据类型_MySQL增删改查及数据类型
  10. java 正则 惰性匹配_正则表达式 - 贪婪与非贪婪(惰性)
  11. win10安装python3.7及配置环境变量
  12. kesioncms ajax分页,改进KesionCMS V9.0x SQL标签分页支持嵌套
  13. mysql in 按顺序排序_Mysql查询结果顺序按in()中ID的顺序排列的实例分析
  14. python入门指南txt-【杂谈】爬虫基础与快速入门指南
  15. c++学习 -- #program once
  16. 74LV165与74HC595 使用
  17. 3.7V锂电池升压5V方案
  18. java获取某天时间的最小值和最大值 00:00:00 与 23:59:59
  19. 还在为英语学习发愁吗?身为程序员的你可能需要这样一份“宝典”(上)...
  20. 异或鉴相器 matlab 数字鉴相器,一款采用CPLD的光伏并网逆变器锁相及保护电路设计...

热门文章

  1. colorpix取色器
  2. 信息安全工程师学习笔记《第一章》
  3. HTML+JS调用摄像头
  4. pycharm下的xlwings+VBA混合编程注意事项
  5. html网页做一个打字小游戏,原生js实现的金山打字小游戏(实例代码详解)
  6. 【MCM-2017】2017年数学建模美赛题目原文及翻译-B (个人思路)
  7. 计算机电子设计论文,计算机毕业设计电子信息毕业设计电子信息毕业论文
  8. DBeaver 连接 Oracle
  9. 观看Tudou视频更流畅
  10. 电脑硬盘数据不小心格式化后,恢复数据的方法介绍