ti.imagefactory的问题

时间:2016-06-08 14:59:04

标签: titanium appcelerator titanium-alloy

在使用功能

拍照后的实践中
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
    });

问题是返回错误后续

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

所有这一切只在iOS上,而Android-没有错误,一切正常。 你有什么解决方案吗???谢谢

1 个答案:

答案 0 :(得分:1)

在你的"其他档案" 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();

    },