<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()
爲什麼在canvas(JS)toDataUrl()在drawImage()之後不起作用?
在您正在測試的代碼中,圖片的*真實*網址是什麼?特別是,它是否與代碼所在的頁面來自同一個域? – Pointy
此外,你真的應該把電話「壓縮」在圖像「onload」回調;你依靠圖像HTTP請求在1秒內完成,這可能實際發生,也可能不實際發生。 – Pointy