[ html canvas createImageData 创建万花筒效果 ] canvas绘图属性 createImageData 属性讲解 及创建万花筒效果

 1 <!DOCTYPE html>
 2 <html lang=‘zh-cn‘>
 3 <head>
 4 <title>Insert you title</title>
 5 <meta name=‘description‘ content=‘this is my page‘>
 6 <meta name=‘keywords‘ content=‘keyword1,keyword2,keyword3‘>
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 8 <link rel=‘stylesheet‘ type=‘text/css‘ href=‘./css/index.css‘ />
 9 <script type=‘text/javascript‘ src=‘./js/jquery-1.12.1.min.js‘></script>
10 <style type=‘text/css‘>
11 html,body,canvas {
12     margin: 0; padding: 0;
13 }
14
15 html {
16     height: 100%;
17 }
18
19 body {
20     background: #000;
21 }
22
23 #can {
24     background: #FFF /* url(‘./images/index.jpg‘) no-repeat center; backgrond-size: cover */;
25     display: block; margin: 25px auto; border-radius: 2px; cursor: pointer;
26 }
27 </style>
28 <script type=‘text/javascript‘>
29     $( function(){
30         var can = $( ‘#can‘ ).get( 0 );
31         var oCan = can.getContext( ‘2d‘ );
32         var oImg = new Image();
33         oImg.src = ‘./images/index.jpg‘;
34         var gImg = oCan.getImageData( 50 , 30 , 100 , 150 );    /* 之所以进行获取,是为了循环中读取个数 */
35         oImg.onload = function(){
36             var num = 0;
37             var length = gImg.data.length;
38             var img = oCan.createImageData( 100 , 100 );
39             for( var i = 0 ; i < length ; i++ ){
40                 num = i % 4; /* 0 1 2 3 */
41                 switch( num ){
42                     case 0 :
43                         num = 0;
44                         img.data[ i ] = getRandomNum();
45                     break;
46                     case 1 :
47                         num = 255;
48                         img.data[ i ] = getRandomNum();
49                     break;
50                     case 2 :
51                         num = 0;
52                         img.data[ i ] = getRandomNum();
53                     break;
54                     case 3 :
55                         num = getRandomNum();
56                         img.data[ i ] = num;
57                     break;
58                 }
59             }
60             oCan.putImageData( img , 10 , 20 );
61         };
62         function getRandomNum(){
63             return Math.ceil( Math.random() * 255 ); /* 0-- 255 */
64         }
65         //alert(getRandomNum());
66     } );
67 </script>
68 </head>
69 <body>
70     <canvas id=‘can‘ width=‘300‘ height=‘168‘>检测到您的浏览器版本过低请升级您的浏览器版本以获取更好的用户体验...</canvas>
71 </body>
72 </html>
时间: 2024-10-12 17:56:11

[ html canvas createImageData 创建万花筒效果 ] canvas绘图属性 createImageData 属性讲解 及创建万花筒效果的相关文章

[ html canvas save restore ] canvas绘图 save restore 属性理论讲解

Canvas API详解(Part 1) 分类 Android 基础入门教程 本节引言: 前面我们花了13小节详细地讲解了Android中Paint类大部分常用的API,本节开始我们来讲解 Canvas(画板)的一些常用API,我们在 8.3.1 三个绘图工具类详解 中已经列出了我们可供调用的一些方法,我们分下类: drawXxx方法族:以一定的坐标值在当前画图区域画图,另外图层会叠加, 即后面绘画的图层会覆盖前面绘画的图层. clipXXX方法族:在当前的画图区域裁剪(clip)出一个新的画图

canvas总结:元素大小与绘图表面大小

前言 我们使用canvas的时候一般在canvas元素中直接设置它的width和height: <canvas id="myCanvas" width="300" height="150">browser don't support canvas</canvas> 当然,也可以不在canvas中进行设置,直接在css样式中设置,因为canvas本身也是一个html节点 canvas{width:600px;height:3

烟花效果(Canvas和Proton)

最近看了很多的烟花效果,我自己的感觉就是代码不是很难,只是需要对它的原理好好理解一下.我们都知道一个烟花从发射到炸裂经过的几个阶段,以及这些过程中涉及到了那些东西.那些量会对最后的炸开效果有影响,我们首相应该把这些量考虑好,之后才能上手去写这个程序,我不知道第一个人是怎么写出的但是我看出基本上所有的烟花效果都是那几个量,没什么区别只是有一些具体的值的大小可能不一样.下面我就分享一下我从网上找的一段代码: 这个烟花效果是自动随机产生烟花,不是我们控制的,相对比较简单. 1 <!DOCTYPE ht

[ html canvas save restore ] canvas绘图 save restore 属性实例演示

解析: 我们可以在做平移变换之前将当前canvas的状态进行保存,其实Canvas为 我们提供了图层(Layer)的支持,而这些Layer(图层)是按"栈结构"来进行管理的 当我们调用save()方法,会保存当前Canvas的状态然后作为一个Layer(图层),添加到Canvas栈中, 另外,这个Layer(图层)不是一个具体的类,就是一个概念性的东西而已! 而当我们调用restore()方法的时候,会恢复之前Canvas的状态,而此时Canvas的图层栈 会弹出栈顶的那个Layer,

Android应用程序窗口(Activity)的绘图表面(Surface)的创建过程分析

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8303098 在前文中,我们分析了应用程序窗口连接到WindowManagerService服务的过程.在这个过程中,WindowManagerService服务会为应用程序窗口创建过一个到SurfaceFlinger服务的连接.有了这个连接之后,WindowManagerService服务就可以为应用程序窗口创建绘图表面了,以便可以用来渲染窗口

使用canvas给图片添加水印, canvas转换base64,,canvas,图片,base64等转换成二进制文档流的方法,并将合成的图片上传到服务器,

一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不够. 下面我们就说说,利用canvas 生成带水印的图片. 1.我们要实现一下效果 2.创建一个canvas var canvas = document.createElement('canvas'); var time = new Date(); var logoCanvas =time+' '+

Canvas学习系列二:Canvas的坐标系统

上一章内容中我们对canvas元素有了一个初步的认识,在接下来的章节中我们会慢慢学习canvas中图形的绘制:但是在绘制之前我们先来看看canvas中的坐标系统,因为这样我们才能知道绘制的图形放在什么位置. 比如:我们要在canvas画布的(100,100)这个位置绘制一个圆 看到这个要求顿时就懵逼了,(100, 100)在什么地方!!! 至于为什么会懵逼呢?是因为我们不知道canvas的坐标系统,那么我们就赶紧来了解Canvas中的坐标系统吧 在了解canvas坐标系统之前,我们先来看看其他的

Canvas之translate、scale、rotate、skew方法讲解!

尊重原创,欢迎转载,转载请注明: FROM  GA_studio   http://blog.csdn.net/tianjian4592 前面说Canvas大致可以分为三类: 1. save.restore 等与层的保存和回滚相关的方法: 2. scale.rotate.clipXXX 等对画布进行操作的方法: 3. drawXXX 等一系列绘画相关的方法: 前面主要讲了drawBitmap方法,并举了一个星球浮动的栗子,在那个例子中,星球有大有小,需要移动,有时候可能需求上还需要旋转或错切,有

Chromium网页绘图表面(Output Surface)创建过程分析

在Chromium中,Render进程在绘制网页之前,要为网页创建一个绘图表面.绘图表面描述的是网页经过渲染之后得到的输出.这个输出需要交给Browser进程处理,才能显示在屏幕上.在硬件加速渲染条件下,这个输出有可能是一个OpenGL纹理,也有可能是一系列需要进一步进行绘制的OpenGL纹理,取决于Render进程使用直接渲染器还是委托渲染器.本文接下来就对网页的绘图表面的创建过程进行详细分析. 老罗的新浪微博:http://weibo.com/shengyangluo,欢迎关注! 关于网页绘

JavaFX战旗类游戏开发 第四课 属性框和菜单的创建

上一课中,我们创建了游戏角色.这节课中,我们将会创建菜单,以便后面使用. 由于只是Demo,我创建的是最简单的形式,如下图所示: 基于游戏开发中的UI控件通常需要有事件(比如图中的移动,攻击,待机,是有事件处理的),我们应该首先创建自己的文字控件. 文字控件代码如下: import com.sun.javafx.tk.FontMetrics; import com.sun.javafx.tk.Toolkit; import javafx.scene.canvas.GraphicsContext;