HTML5 Canvas 将使用像素在屏幕上绘制图形图像。 本节演示了五种用于操作像素以创建摄影特效的 Canvas 技术。 您可使用这些技术来生成独具特色的图像,为您的网站、博客、视频游戏画面、广告和插图等提供信息或艺术趣味。 
本教程包含五个独立的带有注释的代码示例,为您演示了这些技术如何改善一张有关美洲鹰的摄影图像。 这些示例解释了如何执行以下操作: 将美洲鹰的照片放置在一个圆形中;向背景中添加白雪纹理图片;大幅改变色彩构成;使图像变得透明;并将整张图片从彩色变为黑白。 
本主题介绍如何使用 HTML5 Canvas 将照片放入不同形状中,并为 Web 设计创建视觉特效。 
本主题包含一个独立的带有注释的代码示例,演示如何将一张有关美洲鹰的照片放入到一个圆形形状中。 此代码示例演示了如何使用 Canvas 加载美洲鹰照片并显示在屏幕上。 然后,它演示如何使用 Canvas arc 方法创建一个圆,并围绕美洲鹰添加一个白色圆形框。 此示例末尾的讨论材料将说明有关代码如何工作来开发此技术的更多信息。 
      Canvas 代码示例讨论:
此讨论解释了此 Canvas 示例的设计和结构以及所有部件如何协同工作。 此示例使用标准 HTML5 标头 ,以便浏览器可以将其作为 HTML5 规范的一部分加以区别。 代码分成两个主要部分: 
1、主体代码 
2、脚本代码 
主体代码 
当加载页面时,主体标记使用 onload 函数来调用 displayImage 函数。 将美洲鹰的原始图像加载到主体中,以便您可以将其与要由 Canvas 修改的图像进行比较。 canvas 标记是主体的一部分。 指定了 Canvas 的初始宽度和高度,还指定了 id 特性。 必须使用 ID,才能将 Canvas 元素添加到页面的对象模型中。 
脚本代码 
脚本代码包括两个函数: displayImage和getColorData。 加载页面时将调用 displayImage 函数。 getColorData 函数是从 displayImage 调用的。 在脚本部分的开头创建一个全局变量以创建一个空白图像文件,稍后将会用到这个文件。 
displayImage 函数 
加载页面时将调用此函数。 它通过在主体代码中使用 canvas 元素的 ID 来获取画布。 然后,它获取画布的 CanvasRenderingContext2D 对象,使其准备好接受绘制,并使用 DrawImage 将图像加载到上下文中。 在将上下文初始化为二维画布之后,就可以在画布上开始绘制了。 
该函数的最后工作是通过提供一条路径来指定图像的来源。 由于图像可能不会立即加载,因此设置了一个事件,以便在图像实际加载之后调用某个函数。 在加载图像之后,将会显示图像,并调用用于完成绘制工作的 changeImage 函数。 
changeImage 函数 
通过使用 arc 方法围绕图像中心绘制一个圆,从而修改图像。 图像为 200 x 200 像素,圆的半径将为 150 个像素。 因为圆的中心是图像中心,并且圆边框为 100 个像素厚,因此外部边缘上的像素将用白色像素替换。 strokeStyle 属性、lineWidth 属性、beginPath 方法、arc 方法、closePath 方法和 stroke 方法定义这个圆。 
代码要求 
此代码在 Windows Internet Explorer 9 中运行。 它无法在早期版本的 Windows Internet Explorer 中正常运行,但也许能在支持 HTML5 Canvas 的其他浏览器中运行。 
​1. [代码][HTML]代码    
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
//Global variables
      var myImage =
new Image(); // Create a new blank image.
       
      // Load the image and display it.
      function displayImage() {
 
        //
Get the canvas element.
        canvas = document.getElementById("myCanvas");
 
        // Make sure you got it.
        if (canvas.getContext) {
 
          // Specify 2d canvas type.
          ctx = canvas.getContext("2d");
 
          // When the image is loaded, draw it.
          myImage.onload =
function() {
 
            // Load the image into the context.
            ctx.drawImage(myImage, 0, 0);
 
            //
Get
and modify the image data.
            changeImage();
          }
 
          // Define the source of the image.
          myImage.src =
"http://samples.msdn.microsoft.com/workshop/samples/canvas/kestral.png";
        }http://www.enterdesk.com/special/sexygirl/​
      }美女图片
 
      function changeImage() {
 
        ctx.strokeStyle =
"white";
        ctx.lineWidth =
"100";
        ctx.beginPath();
        ctx.arc(100, 100, 150, 0, Math.PI *
2, true);
        ctx.closePath();
        ctx.stroke();
      }
    </script>
</head>
<body onload="displayImage()">
<h1>
      American Kestral
    </h1>
<p>
      The original image is
on the left
and the modified image is
on the right.
    </p>
<img id="myPhoto" src="http://samples.msdn.microsoft.com/workshop/samples/canvas/kestral.png">
<canvas id="myCanvas" width="200" height="200">
</canvas>
<p>
Public domain image courtesy of U.S. Fish and Wildlife Service.
    </p>
</body>
</html>

用HTML5 Canvas为Web图形创建特效的更多相关文章

  1. HTML5 Canvas彩色小球碰撞运动特效

    脚本简介 HTML5 Canvas彩色小球碰撞运动特效是一款基于canvas加面向对象制作的运动小球动画特效.   效果展示 http://hovertree.com/texiao/html5/39/ ...

  2. 学习笔记:HTML5 Canvas绘制简单图形

    HTML5 Canvas绘制简单图形 1.添加Canvas标签,添加id供js操作. <canvas id="mycanvas" height="700" ...

  3. 【HTML】html5 canvas全屏烟花动画特效

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  4. html5 canvas画图之图形随拖动而复制(有操作指示)

    学习html5 canvas,写了一个小练习来加深理解,可以实现图形随拖动而复制. <!DOCTYPE html> <html> <head> <meta c ...

  5. HTML5技术实现Web图形图像处理——WebPhotoshop精简版

    WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包 ...

  6. 基于 HTML5 Canvas 实现的文字动画特效

    前言 文字是网页中最基本的元素,一般我们在网页上都是展示的静态文字,但是就效果来说,还是比较枯燥的.文字淡入淡出的动画效果在项目中非常实用,如果有某些关键的文字,可以通过这种动态的效果来提醒用户阅读. ...

  7. 基于HTML5 Canvas粒子效果文字动画特效

    之前我们分享过很多超酷的文字特效,其中也有利用HTML5和CSS3的.今天我们要来分享一款基于HTML5 Canvas的文字特效,输入框中输入想要展示的文字,回车后即可在canvas上绘制出粒子效果的 ...

  8. html5 canvas实现图片玻璃碎片特效

    今天要为大家带来一款html5 canvas实现的图片玻璃碎片特效.图片以玻璃碎片的形式出现到界面中,然后似玻璃被打碎的效果渐消息.效果图如下: 在线预览   源码下载 实现代码: html代码: & ...

  9. 基于 HTML5 Canvas 的 3D 机房创建

    对于 3D 机房来说,监控已经不是什么难事,不同的人有不同的做法,今天试着用 HT 写了一个基于 HTML5 的机房,发现果然 HT 简单好用.本例是将灯光.雾化以及 eye 的最大最小距离等等功能在 ...

随机推荐

  1. Wannafly挑战赛16

    E(pbds) 题意: 1<=m,n<=5e5 分析: 首先指向关系形成了一个基环外向树森林 实际上我们可以完全不用真正的去移动每个球,而只需要在计数的时候考虑考虑就行了 对于树上的情况, ...

  2. layDate 日期与时间组件 入门

    首先第一步 在官方下载layDate文件.layUI官网:http://layer.layui.com/    https://www.layui.com/laydate/ layDate文件的下载步 ...

  3. Spring Cloud服务的注册与发现

    Spring Cloud简介: Spring Cloud为开发人员提供了快速构建分布式系统中的一些通用模式(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分 ...

  4. cookie读取设置name

    cookie就是k-v形式,可以理解为一个hashmap cookie就是k-v形式,可以理解为一个hashmap cookie就是k-v形式,可以理解为一个hashmap 建立一个无生命周期的coo ...

  5. Oracle SOA Suite OverView

    SOA是一场架构的变革,那既然是变革,那就一定是有内在的原因来推动这个架构的变革.在过去几十年的时间里面,应用程序架构已经经历了3次巨大的变革,从Terminal/主机--> Client/Se ...

  6. 定时任务crontab如何实现每秒执行?

    linux crontab 命令,最小的执行时间是一分钟.如需要在小于一分钟内重复执行,可以有两个方法实现. 方法一:crontab -l内容如下,则每10秒执行一次/home/fdipzone/ph ...

  7. 为了安全,linux下如何使用某个用户启动某个进程?

    安全里有个原则,叫最小权限原则 根据这个原则,对于启动某个应用或者进程,应该赋予其最小权限,根据应用权限要求,创建一个相应权限的用户,赋予其应用相应的权限,然后使用这个用户启用这个应用 如何使用某个用 ...

  8. c++中.dll与.lib文件的生成与使用的详解

    两种库: • 包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library.• 包含函数代码本身,在编译时 ...

  9. 猫猫学iOS之小知识之_xcode插件的删除方法_自己主动提示图片插件KSImageNamed有时不灵_分类或宏之类不能自己主动提示,

    猫猫分享,必须精品 原创文章.欢迎转载. 转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:解决解决自己主动提示图片插件KSImageNamed有时不 ...

  10. c++ 操作Mysql ado

    #pragma once #ifndef DB_MYSQL_H #define DB_MYSQL_H   #include "stdafx.h" #include <wins ...