canvas 的 2D context 可以绘制简单的 2D 图形.它的 2D context 坐标开始于 <canvas> 元素的左上角,原点坐标是(0,0).所有的坐标值都基于这个原点,x 值越大表示越靠右,y 值越大表示越靠下.width 和 height 表示水平和垂直方向上可用的像素数. 1 填充和描边 填充就是用指定的样式填充图形:而描边就是给图形的边缘画线.它们分别对应两个属性:fillStyle 和 strokeStyle.这两个属性的值可以是字符串.渐变对象或者模式对象.默认…
Canvas+Javascript 带图标的工具条制作 TToolbar 工具条是由一个TToolbar对象和两个按钮对象(TImageButton.TColorButton)组成,因为之前我大部分时间是使用d.e.l.p.h.i进行开发,所以命名方面比较偏向于d.e.l.p.h.i的风格,请处女座的同学忍耐将就一下. 图标按钮 TImageButton TImageButton 是一个图标按钮对象,可以设置三个图标文件,分别是正常状态,鼠标移上状态,鼠标点击状态. 下面我们介绍一下TImage…
function canvasUploadImg(image,imageName,imgType,callbackfn){ var img_width = image.width; var img_height = image.height; var canvas = document.getElementById("crop_canvas"); if(canvas== null){ canvas = document.createElement('canvas'); canvas.s…
HTML5 canvas 在线画笔绘图工具(一) 功能介绍 这是我用Javascript写的第一个程序,在写的过程中走了很多弯路,所以写完之后想分享出来,给与我一样的初学者做为学习的参考,同时在编写这个程序时我也碰到一些问题,这里我也会一并的提出来给大家讨论,让我们都能得到进步.因为是初学javascript,所以水平较低,欢迎大家提出批评意见. 程序包含以下内容 1.工具条  2.基本的绘图命令,目前仅有 直线.矩形.圆 ,以后有空还会增加一些命令 3.线型选择 4.颜色选择 5.保存图素 6…
HTML5画图命令 图形的绘制是由TDrawHandler与TCommand 协同工作完成. TDrawHandler需要完成以下工作 1.聚集类用于管理绘图的命令 TCommand 2.管理鼠标事件 ,鼠标点击第一下开始绘图,鼠标点击第二下绘图完成.在点第一次和第二次之间在画板上拖动鼠标时系统动态的根据鼠标位置绘图. 3.将所有绘图命令生成json数据,以便于保存. 4.打开新的图形 TCommand类由 直线.矩形.圆几个基本命令组成. 画图控制类 TDrawHandler 如下代码所示 T…
组装画板(TDrawBuilder) 在这一小节中我们要把工具条和画板组装起来,让他们可以协同进行工作. 画板通过一个命名为TDrawBuilder来进行组装.在详细讲解TDrawBuilder对象之前我们来看一下程序的HTML代码. 画布由三个Canvas组成 toolbar用于绘制工具条,drawCanvas 用于画图的画布,openCanvas 用于在打开保存的图片时显示小图片. 通过建立一个新的TDrawBuilder对象 new TDrawBuilder(toolbar,drawcan…
1. attr(属性名)        //获取属性的值(取得第一个匹配元素的属性值.通过这个方法可以方便地从第一个匹配元素中获取一个属性的值.如果元素没有相应属性,则返回 undefined ) 2. attr(属性名, 属性值)   //设置属性的值 (为所有匹配的元素设置一个属性值.) 3. attr(属性名,函数值)     //设置属性的函数值  (为所有匹配的元素设置一个计算的属性值.不提供值,而是提供一个函数,由这个函数计算的值作为属性值.) 4.attr(properties) …
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style> body { height: 1000px; } </style> </head> <body> <div style="position: relative; width: 300p…
前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化,匿名类型,扩展方法. 下面一起来看下C#3.0 所带来的变化吧. 1,自动实现的属性在C#3.0之前, 定义属性时一般会像下面这样去编写代码: class Person { //定义私有字段 pr…
前言 这一章算是看这本书最大的收获了, Lambda表达式让人用着屡试不爽, C#3.0可谓颠覆了我们的代码编写风格. 因为Lambda所需篇幅挺大, 所以先总结C#3.0智能编译器给我们带来的诸多好处, 下一遍会单独介绍Lambda表达式. 这篇主要包括的内容有: 自动属性,隐式类型,对象集合初始化,匿名类型,扩展方法. 下面一起来看下C#3.0 所带来的变化吧. 1,自动实现的属性在C#3.0之前, 定义属性时一般会像下面这样去编写代码: class Person { //定义私有字段 pr…