关于html5如何在canvas中插入图片的示例详解

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

关于html5如何在canvas中插入图片的示例详解

canvas loading...

在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('美女加载失败,请重试');   };};   }//loadif (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)
登录后复制

参数很多,但基本上你可以把它想成从原图中取出一个矩形区域,然后把它画到画布上目标区域里。

以上就是关于html5如何在canvas中插入图片的示例详解的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:什么是CSS优先级
下一篇:一篇文章让你看懂HTML基本规则和网页结构

发表评论

关闭广告
关闭广告