绘图文本(自定义文本)覆盖从Phonegap相机捕获的图像

时间:2013-11-09 06:22:42

标签: javascript jquery-mobile cordova

如果重复这个问题,请告诉我原始问题的链接,因为我能找到解决当前问题的好链接。

我正在研究 phonegap(cordova2.7) camera 并为Android 4.2制作应用程序。我可以从我的应用程序中获取多张图片。所有图像都保存在SD卡中。但我想在拍摄照片的顶部写下名字。我能够找到如何解决此问题。enter image description here

我想只使用javascript,phonegap方法或者plugins.i不需要任何java代码。 我尝试使用画布

var CAM = {};
window.n = 0;
CAM.changePicture = function() {
navigator.camera.getPicture(CAM.onPhotoDataSuccess, CAM.onFail, {
    quality : 100,
    destinationType : Camera.DestinationType.FILE_URI,
    sourceType : Camera.PictureSourceType.CAMERA,
    encodingType : 0,
    saveToPhotoAlbum : true
});

};
CAM.onPhotoDataSuccess = function(imageURI) {

 var c=document.createElement('canvas');
 var ctx=c.getContext("2d");
 ctx.font = "20px arial";
 ctx.drawImage(imageURI,10,10);
 ctx.fillText("Hello",30,30);
var gotFileEntry = function(fileEntry) {

    var gotFileSystem = function(fileSystem) {
        alert(3);
        fileSystem.root.getDirectory("AndroidClinic11/"
                + CAMFUNC.folderName(), {
            create : true
        }, function(dataDir) {
            n++;
            var newFileName = CAMFUNC.folderName() + " " + n + ".jpg";
            fileEntry.moveTo(dataDir, newFileName, null, CAM.onFail);

        }, CAM.onFail);

    };

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileSystem,
            CAM.onFail);

};

window.resolveLocalFileSystemURI(imageURI, gotFileEntry, CAM.onFail);

CAM.changePicture();
 };
 CAM.onFail = function() {
console.log("failure");
 };

1 个答案:

答案 0 :(得分:1)

您可以使用像fabric这样的javascript库,只要您使用的是phonegap中可用的画布,就可以保存图像/文本等。这是处理图像的documentation。您可能需要从驱动器加载图像,具体取决于phonegap如何处理来自摄像头的图像。