Titanium mobile获取保存的图像路径

时间:2013-01-18 15:58:35

标签: titanium-mobile

我一直在使用此代码将图像从imageviewer存储到设备内存。

blobObj = imageView.toImage(); 

var f = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory,'img.png');
f.write(blobObj);
Titanium.Media.saveToPhotoGallery(f,{
success: function(e) {
    Titanium.UI.createAlertDialog({
        title:'Photo Gallery',
        message:'Check your photo gallery for image '
    }).show();      
},
error: function(e) {
    Titanium.UI.createAlertDialog({
        title:'Error saving',
        message:e.error
    }).show();
}
});

我想要的是从内存中获取当前保存图像的本机路径

三江源

2 个答案:

答案 0 :(得分:2)

亲爱的请参阅以下示例以获取图像存储在钛中的原生路径 文件系统

// Native path
var filename = "image.png";

// Create the file in the application directory       
bgImage = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory, filename);

// Write the image to the new file (image created from camera)
bgImage.write(image);

// bgImage.nativePath, it is alos native path, but you can get through below code.
nativePath = Titanium.Filesystem.applicationDataDirectory + Ti.Filesystem.separator + filename;
alert(nativePath);

希望它适合你。它正在我这边工作。

答案 1 :(得分:1)

由于这仅适用于iOS(请参阅文档),我猜您使用的是iOS平台。

如果您通过blobObj = imageView.toImage();创建图像,则会收到Titanium.Blob对象。此对象可以在应用程序的某个位置保留,也可以暂时在内存中使用。

如果您将此图像存储到媒体库,则无法获得此图像的文件路径,因为iOS平台不允许这样做。最后:你不想做什么。

但是:您可以在应用程序的数据存储中持久存储图像(使用Ti.Filesystem)。

要检索临时对象的文件路径,请使用f.nativePathf.resolve()

不要忘记:你永远不会找到媒体库照片的路径。即使你从那里加载图像,你也会得到一个临时路径。