ti.imagefactory 的问题

Problems with ti.imagefactory

使用功能拍照后的实践

Titanium.Media.showCamera({
        success : function(event) {
            var image = event.media;

            var winTest = Alloy.createController('inputContentPost', {
                'img' : image
            }).getView();
            winTest.open();

        },

我调用另一个控制器,该步骤想象我从函数返回到该控制器并尝试按以下代码所示运行它:

var ImageFactory = require('ti.imagefactory');

    var args = $.args;
    var img = args.img;

    var f = Ti.Filesystem.getFile(img);
    var blob = f.read();
    //imageViewTransformed.image = blob;

    var newBlob = ImageFactory.imageAsResized(blob, {
        width : 1024,
        height : 1024,
        quality : ImageFactory.QUALITY_HIGH
    });

问题是 returns 我的错误后续

[ERROR] :  Script Error {
[ERROR] :      column = 2779;
[ERROR] :      line = 1;
[ERROR] :      message = "-[TiBlob hasPrefix:]: unrecognized selector sent to instance 0x1292da580";

所有这些仅在 iOS 上,而 Android- 没有错误,一切正常。 你对我有什么解决办法吗???谢谢

在您的 "other file" args.img 中已经有 blob 数据(它引用 event.media)。无需从文件系统读取。试试这个:

var newBlob = ImageFactory.imageAsResized(args.img, {
    width : 1024,
    height : 1024,
    quality : ImageFactory.QUALITY_HIGH
});

顺便说一句,我还建议您避免创建不需要的变量。例如:

Titanium.Media.showCamera({
    success : function(event) {
        Alloy.createController('inputContentPost', {
            img : event.media
        }).getView().open();

    },