浅析PHP程序员必要了解html5绘画标签<canvas>

  目前HTML5还在大行其道,伴随产生了很多新的代码办法。

  其中一个便是基于HTML5的游戏,例如微信推广中用到的小游戏------神经猫

或可以单独下载运行的萌宠消除类型游戏

  这样的小游戏大多数都是通过一个html5的新增<canvas>标签实现的,这个标签有一套自己的编程接口(canvas API),专门用来绘制图形,可以实现一系列漂亮的图形与图像,创建出更好更丰富的新一代web页面,canvas标签通过JavaScript语言的画布,以及脚本来进行图像的绘制。

  接下来我们来了解canvas标签的具体使用,首先我们在绘制图像之前必须要有一个画布

一、创建画布

<canvas id="canvas1" width="320" height="160">
            您的浏览器不支持canvas标签
 </canvas>

然后在页面的JavaScript脚本中获取到该元素

var canvas1 = document.getElementById(‘canvas1‘);

然后便可在JavaScript脚本中对该canvas标签进行绘画操作

Canvas有如下的常用属性

canvas1.getAttribute("height")
canvas1.getAttribute(“width")
分别获取当前的画布的宽和高

fillStyle    设置或返回用于填充绘画的颜色、渐变或模式
strokeStyle    设置或返回用于笔触的颜色、渐变或模式
shadowColor    设置或返回用于阴影的颜色
shadowBlur    设置或返回用于阴影的模糊级别
shadowOffsetX    设置或返回阴影距形状的水平距离
shadowOffsetY    设置或返回阴影距形状的垂直距离

当然绘画需要画笔

二、获取画笔操作

我们就需要得到属于这个画布的画笔context,以后的所有事情都通过这个画笔来完成

var canvas1 = document.getElementById(‘canvas1‘);
var ctx1 = canvas1.getContext(‘2d‘);

然后使用context提供的drawImage()方法来在画布上绘制图像、画布或视频

//在画布上定位图像:
context.drawImage(img,x,y);

//在画布上定位图像,并规定图像的宽度和高度:
context.drawImage(img,x,y,width,height);

//剪切图像,并在画布上定位被剪切的部分:
context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);

参数    描述
img    规定要使用的图像、画布或视频。
sx    可选。开始剪切的 x 坐标位置。
sy    可选。开始剪切的 y 坐标位置。
swidth    可选。被剪切图像的宽度。
sheight    可选。被剪切图像的高度。
x    在画布上放置图像的 x 坐标位置。
y    在画布上放置图像的 y 坐标位置。
width    可选。要使用的图像的宽度。(伸展或缩小图像)
height    可选。要使用的图像的高度。(伸展或缩小图像)

接下来我们来绘制一张运动的图片在canvas画布上

var b_y=0;
//下面那张图的纵坐标一开始为0正好在画布上显示
//然后越来越大就向下移动了
//上面那张图一开始的纵坐标是负的,所以没显示
//比如画布高568,宽320
//上面图的坐标已开是就是负的568          b_y-568
//b_y越来越大,b_y-568就越来越接近0上面的图就越来越下来了
function drawBackground(){
    ctx1.drawImage(image,0,b_y,320,568);
    ctx1.drawImage(image,0,b_y-568,320,568);
    b_y+=4;
    if(b_y>568){
        b_y=0;
    }
    window.setTimeout("drawBackground()",100);
}
时间: 2025-01-15 20:20:10

浅析PHP程序员必要了解html5绘画标签<canvas>的相关文章

在理论分析家和程序员眼中,html5是大不相同的

技术的真正趋势还是由技术是否低成本.高效率.高产出.高用户体验等决定的,当然也有大小公司商业博弈等偶然因素决定.在整个决定进程中,程序员的经验.直觉和喜好占有很大的决定权重.当一个技术流行,那么程序员往往会借鉴以前的技术或创造新的技术来完善这种流行,让其开发实现更快速.更友好.更强大:而后,新技术中又会脱颖而出一个亮点技术引出新的流行--周而复始.现在主流的技术就是对移动平台的应用开发,而html5就是借鉴以前PC时代的B/S和C/S架构对当前移动应用开发的一个完善,会在短期内成为流行的亮点技术

做最懂中国程序员的开源HTML5框架

摘要:有人推崇产品,有人推崇运营,也有人推崇战略-到底该推崇什么?李智勇系统地分析了这三者之间的思路,并引用黑格尔的一句话,给出了自己的看法:在尺度中已经蕴含本质,这在产品.运营.战略的侧重上体现的非常好. 视野不拉升或者认知不深入时,就容易在盲人摸象层面上反复,看到微信火了,那就产品最重要,看到阿里火了,那就平台最重要.实际上一个比较显然的事实是,没有锥子一样的产品,那你就火不起来:不能从产品升级为平台,那就很可能活不下去.当然,有些人会说平台也是一种产品,但就和人与猴子都是灵长目,实际上仍是

黑马程序员【JSTL之迭代标签库】

JSTL之迭代标签库 JSTL的全称是 Java Server Pages Standard Tag Library,翻译过来就是JSP标准标签库,它包含了在开发JSP页面时经常用到的一组标准标签.这些标签提供了一种不用嵌入Java代码就可以开发复杂的JSP页面的方法. 在JSTL中一共有5大类标签库,其中有一个重要的核心标签库,而核心标签库根据功能不同又分为通用标签库.条件标签库.迭代标签库,今天我们要说的就是其中的迭代标签库. 在JSP的开发中,我们经常需要对集合对象进行迭代操作.例如,列表

[原创]基于html5新标签canvas写的一个小画板

最近刚学了canvas,写个小应用练习下 源代码 1 <!DOCTYPE> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5 <title>無標題文件</title> 6 <script src="http://ajax.googleapis.co

HTML5新标签&lt;canvas&gt;

基本用法 首先在body中写个<canvas>,设定大小,个人建议大小要在行内设置,不然在部分情况下会发生错误. CSS部分 给canvas加个边框,这边框只是为了方便看出canvas的边界,加不加都可以. <style type="text/css"> canvas{ border:1px solid #000; } </style> HTML部分 <canvas id="canvas" width="500&q

据说年薪30万的Android程序员必须知道的帖子

据说年薪30万的Android程序员必须知道的帖子 标签: android 2015-03-12 16:52 10443人阅读 评论(10) 收藏 举报 Android中国开发精英 目前包括: Android开源项目第一篇——个性化控件(View)篇       包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipVi

html5新标签及废弃元素

html5新标签 <canvas> 新元素 标签 描述 <canvas> 标签定义图形,比如图表和其他图像.该标签基于 JavaScript 的绘图 API 新多媒体元素 标签 描述 <audio> 定义音频内容 <video> 定义视频(video 或者 movie) <source> 定义多媒体资源 <video> 和 <audio> <embed> 定义嵌入的内容,比如插件. <track>

html5标签canvas函数drawImage使用方法

html5中标签canvas,函数drawImage(): 使用drawImage()方法绘制图像.绘图环境提供了该方法的三个不同版本.参数传递三种形式: drawImage(image,x,y):在canvas中(x,y)处绘制图片. drawImage(image,x,y,width,height):在canvas中(x,y)处绘制图片,并将其缩放到指定的宽度和高度. drawImage(image,sourceX,sourceY,sourceWidth,sourceHeight,x,y,w

好程序员web前端分享HTML5与HTML之间有什么区别?

好程序员web前端分享HTML5与HTML之间有什么区别?很多没有学过HTML5大前端的同学,对HTML5并不了解,经常会提出疑问:HTML5与传统HTML有什么区别?今天,就为大家讲一下两者比较明显几个区别.首先,HTML5已经远远超越了标记语言的范畴,它的设计目的是在移动设备上支持多媒体,和HTML比起来,深度和广度上都做了进一步提升. 接着,我们来看一下两者的声明文件类型: HTML:1.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN"