我目前正在使用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之外的。
答案 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')
希望这有帮助。