Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/409.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
(Javascript)使用文件路径创建文件对象_Javascript_File_Url_Canvas_Image - Fatal编程技术网

(Javascript)使用文件路径创建文件对象

(Javascript)使用文件路径创建文件对象,javascript,file,url,canvas,image,Javascript,File,Url,Canvas,Image,我正在制作一个基于cordova的应用程序。 是否可以使用filepath创建文件对象 我要做的是拍一张照片并在画布上展示。 在android中,它可以正常工作,但在ios6中,由于ios6上的大修复问题,在画布上绘制时图片会损坏 然后我在下面找到了一个插件 插件需要一个文件或Blob参数,但我只有文件URL。 如何从文件URL获取文件或Blob对象 我的消息来源如下 takePicture : function(onSuccess, onError) { options = {

我正在制作一个基于cordova的应用程序。 是否可以使用filepath创建文件对象

我要做的是拍一张照片并在画布上展示。 在android中,它可以正常工作,但在ios6中,由于ios6上的大修复问题,在画布上绘制时图片会损坏

然后我在下面找到了一个插件

插件需要一个文件或Blob参数,但我只有文件URL。 如何从文件URL获取文件或Blob对象

我的消息来源如下

takePicture : function(onSuccess, onError) {
    options = {
        quality : 50,
        destinationType : navigator.camera.DestinationType.FILE_URI, //device returns File URL
        correctOrientation : true
    };
    navigator.camera.getPicture(onSuccess, onError, options);
}
onSuccess : function (photo_src) {
    $('#photo_hidden').attr('src', photo_src);
    setTimeout(function() {
    copyImage('photo_hidden', 'a04_image');
    }, 500);
}
copyImage : function (sourceId, targetId) {
    try{
    var source = document.getElementById(sourceId);
    var source_w = source.width;
    var source_h = source.height;
    var target = document.getElementById(targetId);
    var target_w = target.width;
    var target_h = target.height;
    target_h = Math.round(target_w / source_w * source_h);
    /////////////////////
    // I want to make a File object from source.src HERE!!
    /////////////////////
    //TODO this part will be changed to use plugin
    if (target.getContext) {
    var context = target.getContext('2d');
    context.drawImage(source, 0, 0, source_w, source_h, 0, 0, target_w, target_h);
    }
    //
    }catch (e) {
        console.log(e);
    }
}
如果不可能,任何制作文件或Blob对象的想法都是受欢迎的


提前谢谢

我自己解决了这个问题

没有用户的操作,无法创建文件对象。 (需要使用<input type='file'>标记)

我查看了插件源代码

我发现参数不必是文件对象

可以使用图像对象