无法读取Appcelerator Titanium中的图像文件

时间:2018-08-08 06:23:17

标签: titanium appcelerator titanium-mobile appcelerator-titanium

我在项目文件夹中的/ assets中存储了一个图像,我正在尝试使用Ti.Filesystem.getFile()读取它。该代码在android中打印blob数据,但在iOS中打印 undefined 。 在按钮点击事件https://pastebin.com/QgqLQPyz

上调用以下函数
function readImg(e) {
var localPath = '/butterfly.jpg';
var cachedFilename = Ti.Utils.sha1(localPath) + localPath.substr(localPath.lastIndexOf('.'));
console.log("cachedFilename:---"+cachedFilename);
var cachedFile = Ti.Filesystem.getFile(Ti.Filesystem.applicationCacheDirectory, cachedFilename);

if(!cachedFile.exists()){
    var blob = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, localPath).read();
    console.log("-----------blob in not exists:"+JSON.stringify(blob));
}

}

在ImageView中设置相同的图像路径时,它将显示出来,因此问题不在于path。我在这里想念什么?请帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

最好的选择是使用为此目的而制作的模块,这样,您根本不必对图像进行任何处理(请记住,图像处理在运行时非常繁重)。 {3}}。这使您可以配置各种内容模式。

使代码正常工作的一种方法是使用av.imageview获取blob。

var blob = Ti.Filesystem.getAsset('/images/butterfly.jpg');

,然后根据需要调整大小。但是我建议您,如果您确实需要在每次运行该应用程序时执行此操作,则只需调整一次大小并存储该大小调整后的图像以供以后使用。这样,只有一次图像需要调整大小。