`
touchandy
  • 浏览: 2866 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

html5 Canvas制作的网页颜色拾取器

 
阅读更多

学习html5有一段时间了,本人也非常期待html5给我们带来的方便。

在线演示地址 在底部评论第一条

这里写一个小小的应用,应用html5 Canvas制作一个拾取页面颜色的网页。

首先说明这个原理(当然要达到这个目的有很多手段,这边介绍本人的):

通过getImageData()方法获取画布中的像素。

getImageData()支持四个参数context.getImageData(x,y,width,height)

(x,y)表示访问的像素区域的原点坐标,(width,height)表示像素区域的宽度和高度。

getImageData本身不会出现任何可视的效果,但是它返回一个2D渲染上下文ImageData对象。ImageData对象包含3个属性:width,height,data.

这里width,height指像素区域的宽和高,重点是data属性。data属性存储的是一个一维数组CanvasPixelArray。并且每一个像素用4个整数值表示,范围是0~255,

分别表示红(r),绿(g),蓝(b)和阿尔法值(a)。因此0~3表示第一个像素颜色值,4~7表示第二个颜色值,以此类推。

如果你看完了以上基础那么你就可以获取到页面的每一个像素颜色了,接下来就是具体应用了,把那些你获取到的像素颜色值都取出来,ok不废话上代码:

<script type="text/javascript">
$(document).ready(function(){


var canvas=$("#myCanvas");
var context=canvas.get(0).getContext("2d");////////////////创建2d渲染上下文图


var img=new Image();///////////////////////获取一张图片地址,你可以随便更改你喜欢的图片
img.src="img/mypic.jpg";


$(img).load(function(){
context.drawImage(img,0,0); /////////////////在画布上绘制的一张图像,用的是之前的图像当要把它载入画布
});


canvas.click(function(e){///////////////////鼠标在画布的图像上取得像素的坐标
var canvasOffset=canvas.offset();
var canvasX=Math.floor(e.pageX-canvasOffset.left);
var canvasY=Math.floor(e.pageY-canvasOffset.top);

var imageData=context.getImageData(canvasX,canvasY,1,1);
var pixel=imageData.data;
var pixelColor="rgba("+pixel[0]+","+pixel[1]+","+pixel[2]+","+pixel[3]+")" ////////将获取到的像素信息传给变量


$("body").css("background",pixelColor);///////////////////将变量中的信息传给body作为他的背景颜色
document.myForm.red.value=pixel[0];
document.myForm.green.value=pixel[1];
document.myForm.blue.value=pixel[2];
});
});
</script>

好了,制作完毕,建议打开在线演示地址用firefox的firebug查看源代码。

如果你对上面的代码不熟但又很感兴趣的话,建议去看html5 Canvas里面有很多让你吃惊和感兴趣的东西,如过感兴趣还可以关注本人博客,之后还会写一些html5之类的。

分享到:
评论

相关推荐

    html5 canvas 制作流程图 EaselJS

    html5 canvas 制作流程图 EaselJS html5 canvas 制作流程图 EaselJS

    HTML5 Canvas制作的花朵生成器特效源码

    HTML5 Canvas花朵生成器是一款利用HTML5 Canvas制作的花朵生成器,经测试效果相当不错,我们只需要在Canvas画布上点击鼠标,即可动态生成各种颜色样式的花朵,并且每一朵花都可以缓慢地旋转,非常炫酷。

    js html5 canvas制作多个小球碰撞的动画效果

    js html5 canvas制作多个小球碰撞的动画效果 js html5 canvas制作多个小球碰撞的动画效果

    html5 canvas画布随机颜色变化特效

    html5 canvas画布随机颜色变化特效 html5 canvas画布随机颜色变化特效

    html5 canvas制作3D逼真冬天雪景雪花飘洒动画特效

    html5 canvas制作3D逼真冬天雪景雪花飘洒动画特效 html5 canvas制作3D逼真冬天雪景雪花飘洒动画特效

    HTML5 Canvas 颜色选择器

    这段代码是用HTML5来创建一个网页颜色选择器。首先在Canvas画一幅图,然后添加鼠标事件 “鼠标移动”,“鼠标点击”。在鼠标移动的时候,显示当前划过的颜色预览,在鼠标点击的时候,选中当前颜色,显示颜色的细节。

    HTML 5 Canvas基础教程 源码+PDF

    《HTML 5 Canvas基础教程》从HTML5和JavaScript(以及jQuery)的基础知识讲起,全面介绍了HTML5Canvas的各种特性,包括渲染上下文、坐标系统、绘制图形、保存和恢复画布状态,以及变形、合成、处理图像和视频等,让...

    html5 canvas制作15种数字时钟样式代码

    html5 canvas制作15种数字时钟样式代码 html5 canvas制作15种数字时钟样式代码

    html5 canvas 制作的名字logo

    使用html5的canvas制作简易的个性化名字logo,效果是雪花飘落形成名字,创意十足,易修改易学习

    HTML5颜色拾取器

    这是一款基于HTML5的简单颜色拾取工具,帮助在开发中拾取优美颜色代码

    html5 canvas制作3D飞行的飞机动画特效

    html5 canvas制作3D飞行的飞机动画特效

    HTML5 canvas 制作七巧板效果.rar

    HTML5 canvas 七巧板效果,对于Canvas来说,绘制七巧板似乎是比较简单的事了,这个例子适合初学者学习Canvas的使用,一些简单的HTML5技巧。在使用传统CSS来布局时,可能会遇到诸多问题,但是像七巧板这种不规则的...

    html5 canvas飘洒的星星特效

    html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的星星特效html5 canvas飘洒的...

    html5canvas播放视频

    html5 canvas 播放视频html5 canvas 播放视频

    html5 Canvas制作的简单表白动画.rar

    html5 Canvas制作的简单表白动画,打开网页后看到的图形是基于HTML5 Canvas生成的,无使用任何的图片资源,生成图形后添加了动画效果,图形左右摆动,你可借此研究学习下HTML5的相关技巧。

    HTML5 canvas制作圆形的万花筒动画效果

    Canvas圆形万花筒动画效果是一款使用HTML5 canvas制作圆形的万花筒动画效果。

    HTML5Canvas基础教程

    资源名称:HTML5 Canvas基础教程内容简介:《HTML5 Canvas基础教程》从HTML5和Javascript(以及jQuery)的基础知识讲起,全面介绍了HTML5 Canvas的各种特性,包括渲染上下文、坐标系统、绘制图形、保存和恢复...

    html5 canvas圣诞节网页下雪背景特效

    html5 canvas圣诞节网页下雪背景特效 html5 canvas圣诞节网页下雪背景特效

    HTML5 Canvas打造超梦幻网页背景特效.zip

    这是一款使用javascript和HTML5 Canvas来制作的超梦幻网页背景特效。该网页背景特效使用两个canvas元素进行重叠,制作出圆形光影运动的梦幻效果,非常的炫酷。

    HTML5 Canvas核心技术源码技术代码

    HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas核心技术源码技术代码、图形、动画与游戏开发。 Canvas开发、入门学习Canvas技术代码。 HTML5 Canvas...

Global site tag (gtag.js) - Google Analytics