1.图像放大缩小

 <script>
var cvs = document.getElementById("canvas");
cvs.width =
cvs.height = ;
var context = cvs.getContext("2d");
var range = document.getElementById("range");
var img = new Image();
window.onload = function () {
img.src = "imgs/back.jpg";
img.onload = function () {
drawImg();
}
}
function drawImg(scale) {
context.clearRect(, , cvs.width, cvs.height);
var w = scale * img.width;
var h = scale * img.height;
var dx = cvs.width / - w / ;
var dy = cvs.height / - h / ;
context.drawImage(img, dx, dy, w, h);
}
range.onmousemove = function () {
var v = this.value;
drawImg(v);
}
</script>
 <canvas id="canvas"></canvas>

    <input id="range" type="range" min="0.5" max="3.0" value="1.0" style="width:600px;" step="0.1" />

上面是通过滑动来放大缩小图像的,在canvas上使用 dragImage(),可以把一张图像绘制到画布上。

drawImage不仅能加载图片,还能加载canvas:

2.对图像加水印

可以在一个画布上加载另一个画布的方法来对图片加水印

<canvas id="canvas"></canvas>
<input id="range" type="range" min="0.5" max="3.0" value="1.0" style="width:600px;" step="0.1" />
<canvas id="canvas1" style="display:none"></canvas>
 <script>
var cvs = document.getElementById("canvas");
cvs.width =
cvs.height = ;
var context = cvs.getContext("2d");
var range = document.getElementById("range"); var cvs1 = document.getElementById("canvas1");
cvs1.width = ;
cvs1.height = ; context1 = cvs1.getContext("2d");
var img = new Image();
window.onload = function () {
img.src = "images/1-1.jpg";
img.onload = function () {
drawImg();
} context1.font = "bold 50px Arial";
context1.fillStyle = "rgba(255,255,255,0.5)";
context1.textBaseline = "middle";
context1.fillText("==www.sina.mtn==", , ); }
function drawImg(scale) {
context.clearRect(, , cvs.width, cvs.height);
var w = scale * img.width;
var h = scale * img.height;
var dx = cvs.width / - w / ;
var dy = cvs.height / - h / ;
context.drawImage(img, dx, dy, w, h);
context.drawImage(canvas1, cvs.width - cvs1.width, cvs.height - cvs1.height);
}
range.onmousemove = function () {
var v = this.value;
drawImg(v);
}
</script>

3.图片复制:从画布A得到画布图像,放到画布B上

  var dirImg= ctxA.getImageData(0, 0, cvsA.width, cvsA.height);

  ctxB.putImageData(dirImg, 0, 0);

putImageData还有四个参数,可以参考下图:

html5 canvas 图像处理的更多相关文章

  1. HTML5 程序设计 - 使用HTML5 Canvas API

    请你跟着本篇示例代码实现每个示例,30分钟后,你会高喊:“HTML5 Canvas?!在哥面前,那都不是事儿!” 呵呵.不要被滚动条吓到,很多都是代码和图片.我没有分开写,不过上面给大家提供了目录,方 ...

  2. HTML5图形图像处理技术研究

    摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...

  3. html5 Canvas API

    详细内容请点击 1.HTML Canvas API有两方面优势可以弥补:首先,不需要将所绘制图像中的每个图元当做对象存储,因此执行性能非常好:其次,在其他编程语言现有的优秀二维绘图API的基础上实现C ...

  4. 赠书:HTML5 Canvas 2d 编程必读的两本经典

    赠书:HTML5 Canvas 2d 编程必读的两本经典 这两年多一直在和HTML5 Canvas 打交道,也带领团队开发了世界首款基于HTML5 Canvas 的演示文档工具---AxeSlide( ...

  5. 如何开发一个简单的HTML5 Canvas 小游戏

    原文:How to make a simple HTML5 Canvas game 想要快速上手HTML5 Canvas小游戏开发?下面通过一个例子来进行手把手教学.(如果你怀疑我的资历, A Wiz ...

  6. html5 canvas常用api总结(一)

    1.监听浏览器加载事件. window.addEventListener("load",eventWindowLoaded,false); load事件在html页面加载结束时发生 ...

  7. HTML5 Canvas绘制转盘抽奖

    新项目:完整的Canvas转盘抽奖代码 https://github.com/givebest/GB-canvas-turntable 演示 http://blog.givebest.cn/GB-ca ...

  8. html5 canvas首屏自适应背景动画循环效果代码

    模板描述:html5 canvas首屏自适应背景动画循环效果代码 由于动态图太大,怕以后服务器受不了,所以现在都改为静态图了,大家点击演示地址一样的,希望大家喜欢,你们的支持就是小海的动力!! 欢迎大 ...

  9. 自己写的HTML5 Canvas + Javascript五子棋

    看到一些曾经只会灌水的网友,在学习了前端之后,已经能写出下载量几千几万的脚本.样式,帮助大众,成为受欢迎的人,感觉满羡慕的.我也想学会前端技术,变得受欢迎呀.于是心血来潮,开始学习前端知识,并写下了这 ...

随机推荐

  1. python基础的一些知识点

    ord 将字符转换为ASCIIchr 将ASCII转换为字符 元组不可修改,当只有一个元素时,要添加一个逗号集合不可修改,元素无序,不能重复 列表.元组.字典都是可迭代对象,就是可以遍历的对象多层循环 ...

  2. MySQL高级第二章——索引优化分析

    一.SQL性能下降原因 1.等待时间长?执行时间长? 可能原因: 查询语句写的不行 索引失效(单值索引.复合索引) CREATE INDEX index_user_name ON user(name) ...

  3. 20145207 myeclipse测试

    实验博客  

  4. Microsoft.VisualBasic.dll的妙用(开发中肯定会用到哦)

    前言 做过VB开发的都知道,有一些VB里面的好的函数在.NET里面都没有,而Microsoft.VisualBasic.dll却给我们提供使用这些函数的功能(没用过VB的这些功能一样可以使用,大同小异 ...

  5. 北京Uber优步司机奖励政策(1月22日

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. clr via c#读书笔记四:call、callvirt

    1.嵌套类,就是定义在类中的类:嵌套类可以访问外部类的方法.属性.字段而不管访问修饰符的限制,但是外部类只能够访问修饰符为public.internal的嵌套类的字段.方法.属性: 2.CLR如何调用 ...

  7. “网易有钱”sketch使用分享

    本文来自网易云社区 写在开头,关于ps与sketch之间的优劣网上已经有很多分享,大家有兴趣可以百度,其中对否我们在这里不予评价.在移动互联网时代每个app从几十到上百张页面,如果用ps绘制一个个页面 ...

  8. CentOS 使用PostFix搭建邮件服务器

    搭建环境: 关于PostFix是什么以及邮件服务器接受发送邮件流程网上有很多文章,这里就不再写了,这里只记录如何搭建邮件服务器,使用PostFix接受发送邮件 CentOS6.8 32位,postfi ...

  9. OSG-基础知识-程序框架

    本文转至http://www.cnblogs.com/shapherd/archive/2010/08/10/osg.html 作者写的比较好,再次收藏,希望更多的人可以看到这个文章 互联网是是一个相 ...

  10. Unity Lighting - Lighting overview 照明概述

    Lighting overview 照明概述     In order to calculate the shading of a 3D object, Unity needs to know the ...