html5 worker 实例(二) 图片变换效果


Posted in HTML / CSS onJune 24, 2013

worker的js代码img.js

复制代码
代码如下:

onmessage = function(e) {
postMessage(filter(e.data))
};
function filter(imgd) {
var pix = imgd.pixels.data;
var xcord = imgd.x / 1000;
var ycord = imgd.y / 1000;
for ( var i = 0, n = pix.length; i < n; i += 4) {
var grayscale = pix[i] * xcord + pix[i + 1] * .59 + pix[i + 2] * .11;
pix[i] = grayscale; // red
pix[i + 1] = grayscale; // green
pix[i + 2] = grayscale; // blue
}
imgd['pixels'].data = pix;
return imgd;
}

html代码
复制代码
代码如下:

<!DOCTYPE html>
<html>
<head>
<title>test2.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
<script type="text/javascript" src="../js/jquery-1.8.0.min.js"></script>
</head>
<body>
<canvas id="myCanvas" width="640" height="480"></canvas>
<img src="../image/psu[4].jpg" class="onHover"> //注意,自己在这里插入一张图片,否则没用效果
<script type="text/javascript">
function process(img,x,y){
var canvas = document.getElementById("myCanvas");
var context = canvas.getContext('2d');
context.drawImage(img, 0, 0);
var pixels = context.getImageData(0,0,img.width,img.height);
var worker = new Worker("img.js");
var obj = {
pixels: pixels,
x:x,
y:y
}
worker.postMessage(obj);
worker.onmessage = function(e) {
if (typeof e.data === "string") {
console.log("Worker: " + e.data);
return;
}
var new_pixels = e.data.pixels; // Pixels from worker
context.putImageData(new_pixels, 0, 0);
img.src = canvas.toDataURL(); // And then to the img
}
}
</script>
<script type="text/javascript">
$(function(){
$(".onHover").on("mouseover", function(){
var x =this.width;
var y = this.height;
console.log("X: " + x + " Y: " + y);
process(this, x, y);
});
})
</script>
</body>
</html>

是执行上面的例子的时候 ,要自己引入jquery包,并且在html页面上的img标签上放入自己要变换的图片。然后部署到服务器,打开页面,当鼠标移动到图片的 上面的时候就会发生变换,在这里执行变换功能的函数有worker负责,随意不影响页面本身的效率,类似于java语言中的多线程。
HTML / CSS 相关文章推荐
CSS3弹性盒模型开发笔记(三)
Apr 26 HTML / CSS
css实例教程 一款纯css3实现的超炫动画背画特效
Nov 05 HTML / CSS
纯css3制作的火影忍者写轮眼开眼至轮回眼及进化过程实例
Nov 11 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
Apr 28 HTML / CSS
10分钟理解CSS3 Grid布局
Dec 20 HTML / CSS
Data URI scheme详解和使用实例及图片base64编码实现方法
May 08 HTML / CSS
利用Storage Event实现页面间通信的示例代码
Jul 26 HTML / CSS
html5使用canvas压缩图片的示例代码
Sep 11 HTML / CSS
HTML5自定义元素播放焦点图动画的实现
Sep 25 HTML / CSS
AmazeUI底部导航栏与分享按钮的示例代码
Aug 18 HTML / CSS
HTTP中的Content-type详解
Jan 18 HTML / CSS
什么是clearfix (一文搞清楚css清除浮动clearfix)
May 21 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
Jun 24 #HTML / CSS
HTML5的表单(绝对特别强大的功能)使用示例
Jun 20 #HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 #HTML / CSS
HTML5 Canvas——用路径描画线条实例介绍
Jun 09 #HTML / CSS
html5的画布canvas——画出简单的矩形、三角形实例代码
Jun 09 #HTML / CSS
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
Jun 09 #HTML / CSS
HTML5视频支持检测(检查浏览器是否支持视频播放)
Jun 08 #HTML / CSS
You might like
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP实现无限极分类图文教程
2014/11/25 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
PHP+JS三级菜单联动菜单实现方法
2016/02/24 PHP
PHP读取zip文件的方法示例
2016/11/17 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
防止网站内容被拷贝的一些方法与优缺点好处与坏处分析
2007/11/30 Javascript
40款非常有用的 jQuery 插件推荐(系列一)
2011/12/21 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
浅谈JavaScript数据类型
2015/03/03 Javascript
js去字符串前后空格的实现方法
2016/02/26 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
浅谈JS函数节流防抖
2017/10/18 Javascript
koa-router源码学习小结
2018/09/07 Javascript
js canvas画布实现高斯模糊效果
2018/11/27 Javascript
Vue指令指令大全
2019/02/09 Javascript
基于vue框架手写一个notify插件实现通知功能的方法
2019/03/31 Javascript
Element 默认勾选表格 toggleRowSelection的实现
2019/09/04 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
vue实现移动端H5数字键盘组件使用详解
2020/08/25 Javascript
Python正则表达式匹配中文用法示例
2017/01/17 Python
详解python Todo清单实战
2018/11/01 Python
django+mysql的使用示例
2018/11/23 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
python numpy矩阵信息说明,shape,size,dtype
2020/05/22 Python
python实现简单文件读写函数
2021/02/25 Python
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
德国价格合理的品牌商品购物网站:averdo
2019/03/21 全球购物
餐饮业创业计划书范文
2014/01/06 职场文书
手机被没收检讨书
2014/02/22 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
2015年人事专员工作总结
2015/04/29 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书