HTML5之canvas绘制图片
来源:互联网 发布:微信刷砍价软件 编辑:程序博客网 时间:2024/04/28 00:09
在使用HTML的canvas显示图片时,我才发觉情况没我想法的那么简单,我原先的代码是这样子的,
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
var pl = new Image();
pl.src = "../image/default.JPG";
ctx.drawImage(pl, 0, 0);
var ctx = canvas.getContext('2d');
var pl = new Image();
pl.src = "../image/default.JPG";
ctx.drawImage(pl, 0, 0);
此种方法是不能够绘制图像的(各浏览器会有差异),其原因在于,我们可能在图片尚未请求或是加载到内存完毕的时候就调用了画图的方法,这是图片尚未加载完毕,当然绘制是不能够成功的。
下面贴出解决的方案。
function preImage(url, callback) {
var img = new Image(); //创建一个Image对象,实现图片的预下载
img.src = url;
var img = new Image(); //创建一个Image对象,实现图片的预下载
img.src = url;
if (img.complete) { // 如果图片已经存在于浏览器缓存,直接调用回调函数
callback.call(img);
return; // 直接返回,不用再处理onload事件
}
callback.call(img);
return; // 直接返回,不用再处理onload事件
}
img.onload = function () { //图片下载完毕时异步调用callback函数。
callback.call(img); //将回调函数的this替换为Image对象
};
}
callback.call(img); //将回调函数的this替换为Image对象
};
}
var canvas = document.getElementById('myCanvas');
var ctx = canvas.getContext('2d');
preImage("../image/default.JPG", function () {
ctx.drawImage(this, 0, 0);
});
var ctx = canvas.getContext('2d');
preImage("../image/default.JPG", function () {
ctx.drawImage(this, 0, 0);
});
此种方式才能够绘制成功。
此种解决方案出自http://apps.hi.baidu.com/share/detail/24712354,这哥们写的挺详细的,我也没细看,大家遇到什么问题可以看看。
0 0
- HTML5之canvas绘制图片
- html5之canvas绘制
- 使用html5 canvas绘制图片
- html5之Canvas绘制刮刮卡
- html5之canvas标签应用之 2d图形绘制以及图片绘制
- HTML5 移动开发 ------ Canvas 9.3 绘制图片
- html5 canvas绘制图片模糊的问题
- html5 canvas绘制图片模糊的问题
- HTML5 Canvas之图片引用
- HTML5之canvas剪切图片
- Html5 用canvas绘制图片,绘制不出来
- HTML5学习笔记之canvas绘制圆形
- HTML5中canvas画图之绘制路径
- HTML5绘图之Canvas标签 绘制坐标轴
- HTML5开发之绘制图形canvas
- Canvas之绘制图片与裁剪图片
- HTML5之Canvas绘图——使用Canvas绘制图形
- HTML5之Canvas 2D入门2 - Canvas绘制图形
- 浅谈清除浮动的方法以及利弊分析
- unity3D-游戏/AR/VR在线就业班 C#入门字符串学习笔记
- Sikuli自动化工具使用
- 2016Y GDUT新生杯初赛 Problem J: 神龙的烦恼(初赛更新完结)
- avalon ms-repeat基础用法
- HTML5之canvas绘制图片
- android中的spannable的使用
- ubuntu系统下如何使用vim 文本编辑器?
- ifenslave双网卡绑定单IP
- ANDROID 高效调试神器 JREBEL 加速编译
- 使用 localhost 无法连接 MySQL 数据库的解决方案
- linux 中的wc命令
- 2016 Y GDUT新生杯决赛 Problem F: 神偷TMK
- 241. Different Ways to Add Parentheses