`
lib
  • 浏览: 135733 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Canvas学习笔记(七)--应用图像

阅读更多

1、图像简介

 

此功能可以用于图片合成或者制作背景等。目前仅可以在图像中加入文字(标准说明中并没有包含绘制文字的功能)、加入图片(如 PNG,GIF,JPEG等)、加入其他的canvas元素。

 

2、引入图像的步骤

 

1)获取JavaScript的Image对象或者其它的canvas元素。但不能是简单的image路径或url;

 

2)使用drawImage()函数绘制图形;

 

3、获取图像的方式

 

1)使用页面中存在的图片。通过ocument.images 、document.getElementsByTasName

、document.getElementById方法来获取页面内的图片;

 

2)使用其它的已经准备好的canvas元素。使用document.getElementsByTasName

或者document.getElementById方法来获取

 

3)使用脚本创建新的Image对象。需要注意图片预加载的问题。

 

4)使用data:url引用图片。优点:减少图片连接数,图片变成了页面的一部分,不需要额外的请求服务器。缺点:图片无法缓存,增加页面的大小。

 

4、绘制图像的方法介绍

 

drawImage(image,x,y)--绘制简单图像

 

image:image对象或者canvas对象;

 

x,y:图像在画布中的起始坐标;

 

drawImage(image,x,y,width,height)--图像缩放

 

image:image对象或者canvas对象;

 

x,y:图像在画布中的起始坐标;

 

width:图像显示的宽度;

 

height:图像显示的高度;

 

drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)--图像切片

 

image:image对象或者canvas对象;

 

sx,sy:切片在图像源中的起始坐标;

 

sWidth,sHeight: 切片在图像源中的宽度和高度;

 

dx,dy:切片在目标中显示的起始坐标;

 

dWidth,dHeight: 切片在目标中相识的宽度和高度;

 

可以参考下面的图片:


5、绘图实例

 

代码实例如下:

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
  	<style type="text/css">
		.wraper {
			position: relative;
			float: left;
			margin-left: 10px;
			margin-top: 10px;
			border: 1px solid orange;
		}
  	</style>
	<script type="text/javascript">
		function draw(){

			//简单的绘制图像(一)
			var image = new Image();
			image.src = "image/gateway-logo1.jpg";

			var canvas1 = document.getElementById('test1');
			if(canvas1.getContext){
				var context = canvas1.getContext('2d');
				context.drawImage(image,10,10);
			}

			//简单的绘制图像(二)
			var can2 = document.getElementById('test2');
			var image2 = new Image();
			image2.onload = function(){
				if(can2.getContext){
					var cxt2 = can2.getContext('2d');
					cxt2.drawImage(image2,0,10);

					cxt2.strokeStyle = "rgba(0,0,200,1)";
					cxt2.beginPath();
					cxt2.moveTo(40,160);
					cxt2.lineTo(50,100);
					cxt2.lineTo(100,20);
					cxt2.lineTo(130,150);
					cxt2.lineTo(180,80);
					cxt2.stroke();
				}
			};
			image2.src = "image/XY.png";

			//图像缩放
			var image3_1 = new Image();
			image3_1.src = "image/ac.jpg";

			var image3_2 = new Image();
			image3_2.src = "image/ac_2.jpg";

			
			var can3 = document.getElementById('test3');
			if(can3.getContext){
				var cxt3 = can3.getContext('2d');

				cxt3.drawImage(image3_1,5,5,90,90);
				cxt3.drawImage(image3_2,100,100,90,90);
			}

			//图像切片
			var can4 = document.getElementById('test4');
			var image4 = new Image();
			image4.onload = function(){
				if(can4.getContext){
					var cxt4 = can4.getContext('2d');

					cxt4.drawImage(image4,620,175,100,170,50,10,100,180);
				}
			};
			image4.src = "image/ac_2.jpg";

			

		}
	</script>
  </head>	
  
  <body onload="draw();">
	
	<canvas id="test1" width="200px" height="200px" class="wraper"></canvas>

	<canvas id="test2" width="200px" height="200px" class="wraper"></canvas>

	<canvas id="test3" width="200px" height="200px" class="wraper"></canvas>

	<canvas id="test4" width="200px" height="200px" class="wraper"></canvas>


  </body>
</html>
 

 

显示的效果:

 

 

 

 

 

 

 

 

 

 

  • 大小: 37.4 KB
  • 大小: 54.9 KB
  • 大小: 13.3 KB
分享到:
评论

相关推荐

    HTML5 Canvas学习笔记(4)游戏界面的淡入淡出

    在本篇"HTML5 Canvas学习笔记(4)游戏界面的淡入淡出"中,我们将深入探讨如何利用Canvas来创建游戏界面的淡入淡出效果,这是一个增强用户体验的重要技巧,尤其在游戏加载、场景切换或过渡效果中。 首先,淡入淡出...

    《HTML5 Canvas学习笔记(10)》数钱数到手抽筋

    这篇名为“HTML5 Canvas学习笔记(10) - 数钱数到手抽筋”的博客文章,很可能是讲解如何使用Canvas来模拟数钱动画或游戏的教程。在Canvas中实现这样的功能,需要掌握以下几个关键知识点: 1. **Canvas基本概念**:...

    HTML5 Canvas学习笔记(7)俄罗斯方块游戏之一(色块)

    这篇“HTML5 Canvas学习笔记(7)俄罗斯方块游戏之一(色块)”着重介绍了如何利用Canvas构建经典游戏——俄罗斯方块的基础部分,即色块的绘制与移动。 首先,我们要理解HTML5 Canvas的基本结构。它是一个二维绘图...

    Android学习笔记——Canvas & clipRect

    这篇学习笔记将深入探讨这两个概念及其在实际应用中的使用。 首先,Canvas可以理解为画布,它是Android系统提供的用于在屏幕上绘制图形的对象。在Android中,我们可以通过Canvas来绘制各种形状,如线条、矩形、圆、...

    bootstrap学习笔记-html5

    4. **Canvas和SVG**:&lt;canvas&gt;元素提供了在浏览器中动态绘制图形的能力,而SVG(可缩放矢量图形)则用于创建清晰的、高质量的矢量图像。 5. **表单控件**:HTML5对表单元素进行了增强,例如新增了date、time、email...

    canvas学习

    在这个“canvas学习”的压缩包中,你将找到关于canvas的基本语法和学习笔记,这对于想要掌握这个技术的前端开发者来说是非常宝贵的资源。 1. **Canvas元素** - `canvas`标签是HTML5中的一个新元素,用于在网页上...

    h5前端学习笔记

    【标题】"h5前端学习笔记"所涵盖的知识点主要集中在HTML5技术及其在前端开发中的应用。HTML5是超文本标记语言的最新版本,它引入了许多新的元素、API和特性,极大地增强了网页的交互性、可访问性和可用性。 【描述...

    canvas学习之API整理笔记(二)

    在本文中,我们将深入探讨HTML5的canvas API,特别是高级动画、像素操作和性能优化这三个核心主题。canvas作为Web开发中的一个强大工具,...同时,持续关注和学习canvas的新特性和最佳实践,将有助于保持技术的前沿性。

    WPF学习笔记 ——主流桌面应用开发技术

    ### WPF学习笔记——主流桌面应用开发技术 #### 一、WPF简介 **Windows Presentation Foundation (WPF)** 是微软推出的下一代图形用户界面系统,它主要用于构建具备卓越视觉体验的Windows客户端应用程序。WPF不仅...

    html2canvas.js

    例如,电商网站可能需要提供用户将购物清单保存为PDF的功能,或者在线教育平台可能需要用户下载自定义的学习笔记。在这种情况下,html2canvas负责将HTML内容转为图像,然后jsPDF将这些图像和额外的文本信息组合成一...

    canvas-note:《Canvas开发笔记》(不定时更新)

    《Canvas开发笔记》是一部关于HTML5 Canvas的详细学习资料,主要涵盖了从基本的二维场景绘制到复杂的图像处理和动画制作等内容。以下是对这些知识点的详细解释: 1. **Canvas基本概念**:HTML5 Canvas是一个基于...

    Android画图学习笔记

    ### Android画图学习笔记知识点概览 #### 一、Android画图基础知识介绍 - **类的简介** - 在Android开发过程中,对于图形绘制的理解不仅仅局限于Google提供的官方文档,还需要深入掌握Java的基础类库,尤其是那些...

    canvas的clipRect理解

    在`android学习笔记--clip.docx`文档中,可能详细阐述了`clipRect`的使用实例、与其他方法的结合使用、注意事项等内容。通过阅读这份文档,开发者可以更深入地理解`clipRect`的原理和应用场景,从而在Android开发中...

    Delphi XE2 之 FireMonkey 入门学习笔记

    ### Delphi XE2 之 FireMonkey 入门学习笔记 #### 一、Delphi XE2 FireMonkey 概述 Delphi XE2引入了一种全新的跨平台UI框架——FireMonkey(简称FMX),该框架支持Windows和Mac OS X操作系统,并且能够提供丰富的...

    新手html学习笔记(仅供菜鸟成长参考).rar

    这个压缩包中的“http学习笔记.doc”可能是关于HTTP协议的学习笔记,HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,负责客户端和服务器之间的数据通信。学习HTTP有助于理解网页请求和响应的工作原理...

    HTML5 Canvas绘制灰太狼图像效果.zip

    对学习Canvas、jQuery和CSS3的初学者来说,这是一个极好的实践项目,可以帮助他们更好地理解和应用这些技术。如果你有兴趣,不仅可以运行并观察效果,还可以尝试修改代码,进一步提升自己的技能。

    android高级编程学习笔记

    ### Android高级编程学习笔记 #### 1. Android安全性 Android安全性是高级开发中非常重要的一环。安全性主要由底层的Linux内核提供,并且涉及到应用程序之间的数据隔离与通信控制。 ##### 1.1 Linux内核安全 每...

    WebGL学习笔记(一).rar

    在“WebGL学习笔记(一)”中,我们将会探讨WebGL的基本概念、工作原理以及如何开始编写你的第一个WebGL程序。 1. **WebGL基本概念** - **上下文(Context)**:在HTML5中,WebGL是Canvas元素的一个上下文,通过`...

    Android学习笔记

    【Android学习笔记】 Android是一种基于Linux的开源操作系统,主要用于移动设备,如智能手机和平板电脑。这份笔记涵盖了Android开发的关键概念,旨在帮助初学者快速入门。 1. Android App基础(1.Android App.docx...

    unity3d NGUI官网示例详解及学习笔记

    本教程主要针对"NGUI官网示例详解"和"NGUI学习笔记"这两部分内容进行深入解析。 一、NGUI基础概念与特点 NGUI的主要特点是它的层级结构、组件化设计和对性能的关注。它将界面元素拆分为不同组件,如Widget、Panel、...

Global site tag (gtag.js) - Google Analytics