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"/>

Responses

0 Replies