[英]clear Canvas and save Canvas
我正在完成用于图片分析和修复的Web应用程序。 我需要帆布方面的帮助。 这是我的工作:
编辑:
<img id="imgEdit" src="<?php echo $imagename; ?>" border="0">
<canvas id="canvasPaint"
width="<?php echo $width; ?>"
height="<?php echo $height; ?>">
</canvas>
<input type="button" value="Clear" onClick="clearCanvas();" class="button">
<input type="button" value="Save" onClick="saveViaAJAX();" class="button">
<div id="debugFilenameConsole">Wait for a while after clicking the button and the filename of the image will be shown to you. </div>
但是现在我对clearCanvas函数有问题。 因为浏览器无法读取属性“宽度”。 这是我的完整源代码。 如何,请有人能告诉我我做错了什么。
编辑:
function clearCanvas()
{
var theCanvas = document.getElementById("canvasPaint");
if (theCanvas && theCanvas.getContext) {
var ctx = theCanvas.getContext("2d");
if (ctx) {
ctx.clearRect(0, 0, <?php echo $width; ?>, <?php echo $height; ?>);
var srcImg = document.getElementById("imgEdit");
ctx.drawImage(srcImg, 0,0);
clickX = new Array();
clickY = new Array();
clickDrag = new Array();
}}}
function saveViaAJAX()
{
var theCanvas = document.getElementById("canvasPaint");
var canvasData = theCanvas.toDataURL("image/jpg");
var postData = "canvasData="+canvasData;
var ajax = new XMLHttpRequest();
ajax.open("POST",'canvasSave.php',true);
ajax.setRequestHeader('Content-Type', 'canvas/upload');
ajax.send(postData);
}
用户单击“保存图像”后,我需要将画布另存为jpeg图像在本地磁盘上。 就是说,画布上透明的区域变为黑色背景。
我需要这样的东西: http : //i48.tinypic.com/2w5vhpv.jpg
您可以使用canvas.toDataUrl('image/jpg')
将画布保存到图像文件中。
关于第一个问题:通常,您可以使用context.clearRect(0, 0, canvas.width, canvas.height)
方法清除画布。 话虽如此,如果正确进行了画布和上下文声明,则您的代码应该可以按预期工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.