I want to save canvas as PNG, without opening it in a new window as base64-encoded image.
I used this code:
jQuery("#btnPreview").click(function(){
if (!fabric.Canvas.supports('toDataURL')) {
alert('Sorry, your browser is not supported.');
}
else {
canvas.deactivateAll();
canvas.forEachObject(function(o){
if(o.get("title") == "||Watermark||"){
canvas.bringToFront(o);
}
});
window.open(canvas.toDataURL('png'), "");
canvas.forEachObject(function(o){
if(o.get("title") == "||Watermark||"){
canvas.sendToBack(o);
}
});
canvas.renderAll();
}
});
I want to make the button save the image as a PNG or JPG.
canvas.toDataURL('png')
provides a string a ladata:image/png;base64,XYZ
. You could stuff that into an<a href="%dataURI%" download>download</a>
(possibly trigger a click event on the element). See Downloading resources in HTML5: a[download]Currently supported only by Google Chrome, though.
In script.js file
In ajax.php
I use this on my jquery: