2012-12-04 65 views
3

我正在尝试将照片库中的图像保存到本地存储,以便我可以跨应用程序会话加载图像。一旦用户完成选择图像,将执行以下逻辑。在模拟器上,我看到错误消息被写入日志。即使我看到错误消息,我认为图像仍保存在模拟图中,因为当我重新启动应用程序时,我可以加载保存的图像。当我在设备上运行这个时,我仍然收到你在下面的代码中看到的错误消息,并且加载了默认的背景,这表明写入不成功。无法保存图像Blob

任何人都可以看到我做错了什么,为什么图像不会成功保存?

var image = i.media.imageAsResized(width, height); 
backgroundImage.image = image;  
function SaveBackgroundImage(image) 
     { 
      var file = Ti.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,W.CUSTOM_BACKGROUND); 
      if(file.write(image, false)) 
      { 
       W.analytics.remoteLog('Success Saving Background Image'); 
      } 
      else 
      { 
       W.analytics.remoteLog('Error Saving Background Image'); 
      } 
      file = null;    
     } 
+0

你能定义“错误信息”是什么吗? –

+0

对不起,应该已经更清楚了。我没有收到任何异常或返回错误消息。当对写入方法进行调用时,它将返回为true或false,表示它是否成功。在我的情况下,它返回false,但没有返回任何信息或没有写入控制台窗口。 – Kevin

回答

4

试试这个代码:

var parent = Titanium.Filesystem.getApplicationDataDirectory(); 
var f = Titanium.Filesystem.getFile(parent, 'image_name.png'); 
f.write(image); 
Ti.API.info(f.nativePath); // it will return the native path of image 

在你的代码中,我的事情你不给图像(PNG/JPEG)的类型,这就是为什么你得到错误。