欢迎访问服务器技术网-www.fuwuqijishu.com

HTML canvas drawImage() 方法

JavaScript fuwuqijishu 2年前 (2022-09-04) 65次浏览 0个评论 扫描二维码
文章目录[隐藏]

HTML canvas drawImage() 方法

Canvas 对象

要使用的图片:

实例

向画布上面绘制图片:

YourbrowserdoesnotsupporttheHTML5canvastag.

var c=document.getElementById(“myCanvas”);
var canvOK=1;
try {c.getContext(“2d”);}
catch (er) {canvOK=0;}
if (canvOK==1)
{
var ctx=c.getContext(“2d”);
var img=document.getElementById(“scream”);
ctx.drawImage(img,10,10);
}

JavaScript:

var c=document.getElementById(“myCanvas”);
var ctx=c.getContext(“2d”);
var img=document.getElementById(“scream”);
ctx.drawImage(img,10,10);


浏览器支持

Internet Explorer 9、Firefox、Opera、Chrome 和 Safari 支持 drawImage()
方法。

注意:Internet Explorer 8 及之前的版本不支持 <canvas> 元素。


定义和用法

drawImage() 方法在画布上绘制图像、画布或视频。

drawImage() 方法也能够绘制图像的某些部分,以及/或者增加或减少图像的尺寸。

JavaScript 语法

在画布上定位图像:

JavaScript 语法: context.drawImage(img,x,y);

在画布上定位图像,并规定图像的宽度和高度:

JavaScript 语法: context.drawImage(img,x,y,width,height);

剪切图像,并在画布上定位被剪切的部分:

JavaScript 语法: context.drawImage(img,sx,sy,swidth,sheight,x,y,width,height);

参数值

参数 描述
img 规定要使用的图像、画布或视频。  
sx 可选。开始剪切的 x 坐标位置。
sy 可选。开始剪切的 y 坐标位置。
swidth 可选。被剪切图像的宽度。
sheight 可选。被剪切图像的高度。
x 在画布上放置图像的 x 坐标位置。
y 在画布上放置图像的 y 坐标位置。
width 可选。要使用的图像的宽度(伸展或缩小图像)。
height 可选。要使用的图像的高度(伸展或缩小图像)。


更多实例

实例

在画布上对图像进行定位,然后规定图像的宽度和高度:

YourbrowserdoesnotsupporttheHTML5canvastag.

var c=document.getElementById(“myCanvas2”);
var canvOK=1;
try {c.getContext(“2d”);}
catch (er) {canvOK=0;}
if (canvOK==1)
{
var ctx=c.getContext(“2d”);
var img=document.getElementById(“scream”);
ctx.drawImage(img,10,10,150,180);
}

JavaScript:

var c=document.getElementById(“myCanvas”);
var
ctx=c.getContext(“2d”);
var
img=document.getElementById(“scream”);
ctx.drawImage(img,10,10,150,180);

实例

剪切图片,并在画布上对被剪切的部分进行定位:

YourbrowserdoesnotsupporttheHTML5canvastag.

var c=document.getElementById(“myCanvas3”);
var canvOK=1;
try {c.getContext(“2d”);}
catch (er) {canvOK=0;}
if (canvOK==1)
{
var ctx=c.getContext(“2d”);
var img=document.getElementById(“scream”);
ctx.drawImage(img,90,130,50,60,10,10,50,60);
}

JavaScript:

var c=document.getElementById(“myCanvas”);
var
ctx=c.getContext(“2d”);
var
img=document.getElementById(“scream”);
ctx.drawImage(img,90,130,50,60,10,10,50,60);

实例

要使用的视频(请按下播放键以开始演示):

画布:

yourbrowserdoesnotsupportthecanvastag

var v=document.getElementById(“video1”);
var c=document.getElementById(“myCanvas4”);
ctx=c.getContext(‘2d’);
v.addEventListener(‘play’,function() {var i=window.setInterval(function() {ctx.drawImage(v,5,5,260,125)},20);},false);
v.addEventListener(‘pause’,function() {window.clearInterval(i);},false);
v.addEventListener(‘ended’,function() {clearInterval(i);},false);

JavaScript(每 20 毫秒,代码就会绘制视频的当前帧):

var v=document.getElementById(“video1”);
var c=document.getElementById(“myCanvas”);
ctx=c.getContext(‘2d’);
v.addEventListener(‘play’,function() {var i=window.setInterval(function()
{ctx.drawImage(v,5,5,260,125)},20);},false);
v.addEventListener(‘pause’,function() {window.clearInterval(i);},false);
v.addEventListener(‘ended’,function() {clearInterval(i);},false);


Canvas 对象

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Warning: error_log(/www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/#log/log-2405.txt): failed to open stream: No such file or directory in /www/wwwroot/fuwiqijishu/wp-content/plugins/spider-analyser/spider.class.php on line 2900