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. 安装 RobotFramework 可视化工具 RIDE

    1. 概述 robot framework 的安装 可视化工具 ride 的安装 2. 准备 安装缘由 来自一本书 书名: Robot Framework自动化测试修炼宝典 豆瓣上有好评不少, 坏评也 ...

  2. JavaWeb——库存管理系统(1)jsp部分---18.12.13

    add.jsp <%@ page language="java" contentType="text/html; charset=UTF-8"    pa ...

  3. xmind打开文件报错

    可以尝试使用导入 文件——导入 选择此方式打开即可.

  4. 成都Uber优步司机奖励政策(3月28日)

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

  5. HDU 2242 考研路茫茫——空调教室

    考研路茫茫——空调教室 http://acm.hdu.edu.cn/showproblem.php?pid=2242 分析: 树形dp,删边. 代码: #include<cstdio> # ...

  6. logback.xml日志文件配置

    放在resources目录下面就可以自动读取<?xml version="1.0" encoding="UTF-8"?> <configura ...

  7. DSP5509的XF实验-第一篇

    1. 使用大道科技的EASY-DSP5509开发板,测试第一个例程,DSP_easy5509\Code-Easy5509\EX01_XF\XF 2. 直接编译,报出错误,在Problems窗口错误指示 ...

  8. 基于 CPython 解释器,为你深度解析为什么Python中整型不会溢出

    前言 本次分析基于 CPython 解释器,python3.x版本 在python2时代,整型有 int 类型和 long 长整型,长整型不存在溢出问题,即可以存放任意大小的整数.在python3后, ...

  9. lintcode735. Replace With Greatest From Right

    Given an array of integers, replace every element with the next greatest element (greatest element o ...

  10. 【20180807模拟测试】T2 box

    [问题描述] 有个桌子长 R 宽 C,被分为 R*C 个小方格.其中,一些方格上有箱子,一些方格上有按 钮,一些方格上有障碍物,一些方格上是空地.现在有个任务,需要把所有箱子推到这些按 钮上面.箱子有 ...