3

我一直在使用此代码将图像从 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();
}
});

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

谢谢

4

2 回答 2

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);

希望它会适合你。它在我身边工作。

于 2014-11-28T11:37:57.033 回答
1

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

如果您通过创建图像,blobObj = imageView.toImage();您将收到 Titanium.Blob 对象。这个对象可以保存在你的应用程序的某个地方,它也可以暂时在内存中可用。

如果您将此图像存储到媒体库,您将不会获得此图像的文件路径,因为 iOS 平台不允许这样做。所以最后:你想做的事情是不可能的。

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

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

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

于 2013-03-19T17:06:58.277 回答