Titanium /如何临时存储照片以便在以后的功能中使用

时间:2014-04-18 19:01:53

标签: ios image camera titanium appcelerator

Titanium /适用于iOS应用:

我如何设法拍摄照片,然后在新功能中使用此照片,例如显示照片,并在其顶部放置透明度稍大的副本?

3 个答案:

答案 0 :(得分:1)

如果您想保存照片,那么您可以使用Alloy.Globals全局保存数据,以便日后使用。

Alloy.Globals.photo = blob object;

答案 1 :(得分:1)

请注意,我尝试使用以下内容编辑Mitul Bhalia的答案,但编辑被敲了回来。所以这就是你如何做到的:

拍摄图像后,您可以将其存储为全局对象Alloy.Globals中的变量。然后,您可以在应用中的位置或之后访问此处。

例如:

takePhotoButton.addEventListener('click', function(){
    Titanium.Media.showCamera({
    success:function(event) {
        if(event.mediaType === Ti.Media.MEDIA_TYPE_PHOTO) {

            // Store the file in a variable 
            var image = event.media;

            // Store the image in the global object
            Alloy.Globals.temporaryImage = image;

        } else {
        alert("got the wrong type back ="+event.mediaType);
    }
    },
    ...

在您的应用中的其他位置,在存储图像之后,例如:

var anImage = Ti.UI.createImageView({ image: Alloy.Globals.temporaryImage })

另请注意,广泛使用全局对象可能会导致内存问题,因此请尽量不要过度使用。

答案 2 :(得分:0)

以下是我目前解决问题的方法:

takePhotoButton.addEventListener('click', function(){
    Titanium.Media.showCamera({
    success:function(event) {
        if(event.mediaType === Ti.Media.MEDIA_TYPE_PHOTO) {

            // Store the file in a variable 
            var image = event.media;
            var filename = 'myPhoto.jpg';
            takenPhoto = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, filename);
            takenPhoto.write(image);

        } else {
        alert("got the wrong type back ="+event.mediaType);
    }
    },
    ...

然后我可以使用takenPhoto来显示我用相机拍摄的照片。 但我真的不知道这是不是最好的方法,如果它是正确的,因为我不使用' var'启动拍摄照片。但是,如果我使用' var'我不能在函数之外使用takenPhoto。