Save canvas image to device memory
Save canvas images to device file system and scan content DB to access the image for third-party viewer apps.
For these purposes used Filesystem API and Content API.
var dirName = "images";
var dir = null;
var file = null;
if ("undefined" !== typeof(tizen)) {
tizen.filesystem.resolve(dirName, function(dir) {
dir = dir;
}, function(err) {
alert("Could not resolve directory " + fs.dirName + ": " + err.message);
}, "rw");
}
try {
dir.createFile("test.png");
}
catch (exc) {
console.log("Could not create file " + exc.message);
}
try {
file = dir.resolve("test.png");
}
catch (exc) {
console.log("Could not resolve file " + exc.message);
}
file.openStream('w', function(fileStream) {
try {
var dataURL = drawing.getCanvasRender().toDataURL().replace("data:image/png;base64,", "");
fileStream.writeBase64(dataURL);
fileStream.close();
tizen.content.scanFile(file.toURI(), function() {
console.log('scanning is completed. database refreshed');
}, function(err) {
console.log('The following error occurred: ' + err.name);
});
} catch (exc) {
console.log("Could not write to file: " + exc.message);
}
}, function(err) {
console.log("Could not open file stream: " + err.message);
});
}
To work this is necessary to add following privileges to configuration file:
<tizen:privilege name="http://tizen.org/privilege/content.write"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.read"/>
<tizen:privilege name="http://tizen.org/privilege/filesystem.write"/>