所有分类
  • 所有分类
  • 后端开发
Canvas绘画秘籍:图片加载等待,一切尽在掌握

Canvas绘画秘籍:图片加载等待,一切尽在掌握

在canvas中显示图片非常简单。API内置的几个简单命令可以轻松地为canvas添加图片内容。浏览器通常会在页面脚本执行的同时异步加载图片。为保证在呈现之前图片已完全加载,我们提供了回调,即仅当图像加载完成时才执行后续代码,如代码清单如下

理解Canvas图片加载

在Canvas里放图其实挺容易滴,只需用到几个简单的指令就能搞定。不过,跟文字或者图形不太一样,图片加载起来麻烦点,所以得等它加载完才能画上去!浏览器经常是偷偷摸摸地加载图片的,要是在它还没加载完的时候就去画,Canvas就啥都看不见了。所以咱们写代码的时候要记得先等等,等到图片加载完了再动手哈~

使用回调确保图片加载完毕

别急要等图都载入好再来展示!这就得靠下个环节—回调函数了。只到所有的图像加载完以后才能继续往下走,这样子就不会有加载没成功的麻烦。

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);
  }

基本绘画操作

搞定图像的绘画,关键就在于告诉它你想放到哪儿去(用x、y轴表示)呗。得注意了,这可是以图像左上角为参照点。在Canvas这个大家庭里,你可以随心所欲地按比例画出任何你想要的图案。

缩放及调整尺寸

如果你想更改图片大小,那就试试重载过的drawImage函数!把想要的宽度和高度写进去就能搞定~调整和缩放图片就是这么简单。

图像裁剪

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这个办法,把原图里你想要的那块儿,涂到Canvas画布的指定位置就成了。虽然这个方法麻烦点,需要搞懂好几个参数,但是你只要知道它的作用,就跟剪刀加胶水差不多,两头拼起来就行!

旋转与翻转

Canvas绘画秘籍:图片加载等待,一切尽在掌握

不光能缩小放大图片,你还可以试试转动或倒过来看看!用Canvas的API方法就能完成,想要怎么转都行~这样搞怪的展示方式肯定让人眼前一亮!

透明度处理

透明度处理是我们做视觉特效常见的手法。在Canvas里头,你能通过调整globalAlpha这个属性来操控Canvas上所有画出来的东西的透明程度,这样就能做出那种淡进淡出的效果。

drawImage(image, x, y, width, height)

滤镜效果应用

Canvas里的滤镜功能让你的图像更有艺术范儿或者特效感!用它调整下globalCompositeOperation属性,然后试试那些滤镜函数,比如模糊啊、深褐色之类的,瞬间就让你的图片变得更酷炫了。

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);

动画效果实现

Canvas加上JavaScript就能做出各种炫酷的动画了,像是页面上的颜色渐变啊、移动啊、旋转之类的都能做出来。这样子用户看起来也会觉得特别有意思!

响应式设计与互动性

要想用Canvas展示出好图,别忘了照顾下它的响应式设计和互动性。我们可以根据不同设备屏幕大小来自动调整Canvas的大小,还得加上点交互事件处理的功能,这样用户才能跟展示的图玩起来。

了解了HTML5Canvas加载图片跟操作的技巧后,就能玩转图片、给观众带来更精彩的画面!CanvasAPI就是我们的工具箱,用好了它,视觉效果就会变得更炫酷!

drawImage(image,
sourceX,
sourceY,
sourceWidth,
sourceHeight,
destX,
destY,
destWidth,
destHeight)

原文链接:https://www.icz.com/technicalinformation/web/javascript/2024/04/15545.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?