【发布时间】:2014-06-06 22:15:00
【问题描述】:
<script>
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');
var img = new Image();
img.onload = function(){
canvas.width=img.width;
canvas.height=img.height;
context.drawImage(img,0,0);
}
img.src="2.jpg";
function compress(){
var dataURL = canvas.toDataURL("image/jpg",0.5);
document.getElementById("img").src=dataURL;
}
setTimeout(compress,1000);
</script>
我尝试使用 fillRect() 而不是 drawImage() 作为示例。所以它工作正常......我确定原因是drawImage()
【问题讨论】:
-
在你测试的代码中,图片的真实 URL是什么?特别是,它是否来自与代码所在页面相同的域?
-
另外,你真的应该在图像“onload”回调中调用“compress”;您依赖图像 HTTP 请求在 1 秒内完成,这可能会也可能不会发生。
标签: javascript canvas drawimage todataurl