html5 canvas怎么载入图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html5 canvas怎么载入图像相关的知识,希望对你有一定的参考价值。

  在canvas中显示图片非常简单。可以通过修正层为图片添加印章、拉伸图片或者修改图片等,并且图片通常会成为canvas上的焦点。用html5 Canvas API内置的几个简单命令可以轻松地为canvas添加图片内容。
  不过,图片增加了canvas操作的复杂度:必须等到图片完全加载后才能对其进行操作。浏览器通常会在页面脚本执行的同时异步加载图片。如果试图在图片未完全加载之前就将其呈现到canvas上,那么canvas将不会显示任何图片。因此,开发人员要特别注意,在呈现之前,应确保图片已经加载完毕。
  为保证在呈现之前图片已完全加载,我们提供了回调,即仅当图像加载完成时才执行后续代码,如代码清单如下所示。
  ?

  <script type="text/javascript">
  function drawBeauty(beauty)
  var mycv = document.getElementById("cv");
  var myctx = mycv.getContext("2d");
  myctx.drawImage(beauty, 0, 0);
  
  function load()
  var beauty = new Image();
  beauty.src = "http://images.cnblogs.com/cnblogs_com/html5test/359114/r_test.jpg";
  if(beauty.complete)
  drawBeauty(beauty);
  else
  beauty.onload = function()
  drawBeauty(beauty);
  ;
  beauty.onerror = function()
  window.alert(\'美女加载失败,请重试\');
  ;
  ;
  //load
  if (document.all)
  window.attachEvent(\'onload\', load);
  else
  window.addEventListener(\'load\', load, false);
  
  </script>
  

  
  基本绘画
  在最基本的画图操作中,你需要的只是希望图像出现处的位置(x和y坐标)。图像的位置是相对于其左上角来判断的。使用这种方法,图像可以简单的以其原尺寸被画在画布上。
  drawImage(image, x, y)
  var canvas = document.getElementById(‘myCanvas’);
var ctx = canvas.getContext(’2d’);ctx.drawImage(myImage, 50, 50);
ctx.drawImage(myImage, 125, 125);
ctx.drawImage(myImage, 210, 210);
  
  缩放及调整尺寸
  改变图像的尺寸,你需要使用重载的drawImage函数,提供给它希望的宽度和高度参数。
  drawImage(image, x, y, width, height)
  var canvas = document.getElementById(‘myCanvas’);
var ctx = canvas.getContext(’2d’);ctx.drawImage(myImage, 50, 50, 100, 100);
ctx.drawImage(myImage, 125, 125, 200, 50);
ctx.drawImage(myImage, 210, 210, 500, 500);
  图像裁剪
  最后一个drawImage方法的功用是对图像进行裁剪。
  drawImage(image,
sourceX,
sourceY,
sourceWidth,
sourceHeight,
destX,
destY,
destWidth,
destHeight)
  参数很多,但基本上你可以把它想成从原图中取出一个矩形区域,然后把它画到画布上目标区域里。
参考技术A 参考下面代码:
<script type="text/javascript">
var c=document.getElementById("myCanvas");
var cxt=c.getContext("2d");
var img=new Image()
img.src="flower.png"
image.onload = function()cxt.drawImage(img,0,0)
</script>

canvas(五) 使用图像

参考技术A

canvas 具有操作图像的能力。可以用于动态的图像合成或者作为图像的背景,以及游戏界面(Sprites)。浏览器支持的任意外部图片格式都可以使用,还可以使用同一个页面中其他canvas元素生成的图片作为图片源。

引入图像到 canvas 里需要以下两部基本操作:

canvas 的API 可以使用下面这些类型中的一种作为图片的源:

HTMLImageElement
这些图片是由 Image() 函数构造出来的,或者任何的 <img> 元素

HTMLVideoElement
用一个HTML的 <video> 元素作为图片源,可以从视频中抓取当前帧作为一个图像

HTMLCanvasElement
可以使用另一个 <canvas> 元素作为图片源。

ImageBitmap

在 HTMLImageElement 上使用 crossOrigin 属性,可以请求加载其他域名上面的图片。

使用 document.getElementsByIdTagName 或者 document.getElementById 方法来获取其他 canvas 元素。

一旦获得了源图对象,我们就可以使用 drawImage 方法将它渲染到 canvas 里。 drawImage 方法有三种形态,最常见的是:

drawImage(image,x,y)
其中 image 是image 或者 canvas 对象,x/y是目标在 canvas里的起始坐标。

drawImage 的第二种形态,增加了两个用于控制图像在 canvas 中的参数。

drawImage(image,x,y,width,height)
这个方法多了2个参数: width 和 height ,这两个参数用来控制当 canvas 画入时应该缩放的大小。

drawImage 方法的第三个也是最后一个变种有8个新参数,用于控制做切片显示的。

drawImage(image,sx,sy,sWidth,sHeight,dx,dy,dWidth,dHeight)
第一个参数是源图像引入,后面的前4个是定义图像源的切片位置和大小,后4个则是定义切片的目标显示位置和大小。

以上是关于html5 canvas怎么载入图像的主要内容,如果未能解决你的问题,请参考以下文章

html5 canvas怎么画

Html5 Canvas + fabric.js 的独立堆肥

在 Angular.js 上的 HTML5 Canvas 中的背景图像上绘制一个矩形

html5 canvas 怎么绘制不规则矢量图

(HTML5) Canvas 是不是具有图像映射的等价物?

在 HTML5 Canvas 中绘制图像,同时保留图像