25-Canvas对象的toDataURL()方法
3.5.3 Canvas对象的toDataURL()方法
如同本书在第1章中简单说明的那样,Canvas对象也包含一个名为toDataURL()的方法——可以返回代表画布图像数据的字符串。若没有参数的调用,的可以返回一个图像MIME类型image/png的字符串。如果将image/jpg作为一个参数,也可以设置第二个参数,用来代表图片的“质量/压缩”级别,数值范围为0.0~1.0。这里将使用toDataURL()将画布的图像数据输出到表单的
首先,要为Text Arranger创建HTML中最后的两个表单控件。创建一个id为createImage Data的按钮:当单击按钮时,它将产生一个名为imageDataDisplay的
<input type="button" id="createImageData" value="Create Image Data">
<br>
<br>
<textarea id="imageDataDisplay" rows=10 cols=30></textarea>
接下来,为createImageData按钮设置事件监听器。
formElement = document.getElementById("createImageData");
formElement.addEventListener('click', createImageDataPressed, false);
然后,在createImageDataPressed() 事件处理器中,调用Canvas对象 (theCanvas)的toDataURL() 方法,将imageDataDisplay
function createImageDataPressed(e) {
var imageDataDisplay = document.getElementById('imageDataDisplay');
imageDataDisplay.value = theCanvas.toDataURL();
window.open(imageDataDisplay.value,"canvasImage","left=0,top=0,width=" +
theCanvas.width + ",height=" + theCanvas.height +
",toolbar=0,resizable=0");
}

SECURITY_ERR: DOM Exception 18 在一些Web浏览器中,例如Google Chrome,当显示图像(如例3-3中的图案填充类型)并尝试输出画布的时候,有可能会遇到错误(SECURITY_ERR: DOM Exception 18)。这通常,这是因为浏览器本地执行网页而造成的(加载自文件系统)。一般情况下,这些错误可以通过从服务器端加载HTML页面来清除——远程或在本地机器上均可。