如何将 imageView.image 转换为 TiBlob 对象?

how to convert imageView.image to TiBlob object?

我正在尝试将照片保存到照片库中 这是我的代码

var views = [];
for (var i = 1; i <= 100; i++) {
    var img = Ti.UI.createImageView({
        image : '/images/' + i + '.jpg'
    });
    views.push(img);
}
scrollableView.setViews(views);

和保存按钮

Ti.Media.saveToPhotoGallery(views[scrollableView.currentPage].image, {
    success : function() {
        alert('success');
    },
    error : function(e) {
        alert(e.error);
    }
});

它给出错误为

invalid media type: Exepcted either TiBlob or TiFile, was: String

由于缺乏更具体的代码,我只能在阅读您的代码后给您一些建议。

  • 就像你写的var views = []一样,你在views中添加对象。我认为您应该为 views 定义 Type。喜欢 var views = [UIView]()var views = [CustomView]()
  • var img = Ti.UI.createImageView, imgobject 你要加到 views, 我觉得 Typeviews 可以从Class,TI.
  • 推断
  • image : '/images/' + i + '.jpg',你要保证JPG Picture的名字是正确的。例如,您确定 images1.jpg 是正确的名称,而不是 image1.jpg 吗?
  • views.push(img),我猜pushTi中的自定义函数。因为我们总是使用 append 将对象添加到 Array.
  • 最后,你的错误提到了 TiBlobTiFile,你没有在你的代码中显示问题。

您可以简单地将 views.push(img); 替换为 views.push(img.toBlob());。这应该保证您提供一个 blob 对象。尽管如此,图像本身必须是正确的(仔细检查名称等)。

试试这个,只需更换

views[scrollableView.currentPage].image

views[scrollableView.currentPage].toBlob();

希望对您有所帮助。