如何从JavaScript内部访问ngCordova相机图像

时间:2016-04-06 06:51:53

标签: html angularjs ionic-framework

我目前正在使用Ionic Framework开发一个照片编辑应用程序。目前,我使用的是开源JS Drag&删除照片编辑器并相应地进行了修改,但我需要能够使用AngularJS之外的ngCordova Camera插件以及仅使用JS的单独脚本访问用户创建的图像。

我决定接受( angular.element(document.getElementById('编辑器'))。scope()。)方法但是已经来了徒劳无功。

我开始认为这不可能,但这就是为什么我来这里为它做最后一击。

这是编辑器中的一些代码。 Yoda是设置为本地存储图像时的背景图像。

        window.onload = function() {
       //THIS IS WHERE WE WILL ACCESS THE IMAGE GENERATED BY ngCamera

        var sources = {
            yoda: angular.element(document.getElementById('editor')).scope().pictureUrl
        };
        loadImages(sources, initStage);

    };

下面是我们拍摄照片并将其网址分配给$ scope.pictureUrl的地方。忽略添加到数组部分,即将图像同步到Firebase。

 $cordovaCamera.getPicture(options)
        .then(function(imageData) {
            syncArray.$add({image: imageData});
            $scope.pictureUrl= 'data:image/jpeg:base64,' + data
            .then(function() {
                alert("Image has been uploaded");
            });
        }, function(error) {
            console.error(error);
        });
  };

整个app.js文件的Pastebin:http://pastebin.com/8A8C4hL3

简而言之,我正在寻找一种方法来访问由ngCordova的Camera插件创建的图像,这些图像是在一些实际的JS内部以及Ionic Framework使用的AngularJS之外的。

1 个答案:

答案 0 :(得分:1)

如果您想将图片放在外部js文件中,那么您可以尝试将图像存储在 localStorage

$cordovaCamera.getPicture(options).then(function(imageData) {
          localStorage.setItem('myBase64Image', ("data:image/jpeg;base64," + imageData));

        }, function(err) {
          console.log('error in camera then');
          // error
        });

然后在您的外部js文件中,您可以访问base64图片,例如。

localStorage.getItem('myBase64Image')

希望这有帮助。