Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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 winjs图片文件大小_Javascript_Windows_Winjs - Fatal编程技术网

Javascript winjs图片文件大小

Javascript winjs图片文件大小,javascript,windows,winjs,Javascript,Windows,Winjs,我正在尝试从Win 8应用程序中的图片中获取大小(像素、比特数)。我用openPicker拾取文件,然后得到文件。但是我找不到尺寸属性? 如果文件太大,我将显示一个错误。 你知道我怎样才能得到这些信息吗? 谢谢。经过几个小时的搜索和尝试,我解决了这个问题: //add picture document.getElementById("btnAddImg").addEventListener('click', function () { // Create

我正在尝试从Win 8应用程序中的图片中获取大小(像素、比特数)。我用openPicker拾取文件,然后得到文件。但是我找不到尺寸属性? 如果文件太大,我将显示一个错误。 你知道我怎样才能得到这些信息吗?
谢谢。

经过几个小时的搜索和尝试,我解决了这个问题:

//add picture
        document.getElementById("btnAddImg").addEventListener('click', function () {
            // Create the picker object and set options
            var openPicker = new Windows.Storage.Pickers.FileOpenPicker();
            openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
            openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary;
            openPicker.fileTypeFilter.replaceAll([".png", ".jpg", ".jpeg"]);
             openPicker.pickSingleFileAsync().then(function (file) {
                file.openAsync(Windows.Storage.FileAccessMode.read).done(function (stream) {
                    var fileType = file.contentType;
                    var blob = MSApp.createBlobFromRandomAccessStream(fileType, stream);
                    var fdata = new FormData();
                    fdata.append('upload_field', blob);
                    //more code....
                });
             });
        });

希望它能帮助其他人。

您可以通过StorageFile对象本身获取此信息,而无需打开文件或将其加载到内存中

为了方便起见,假设myFile是所讨论的StorageFile

对于图像尺寸,调用,其结果是一个包含宽度和高度属性的对象。您可以在场景1中找到检索ImageProperties的示例


有关文件大小,请调用。结果是一个size属性具有该值的对象。

您具体从哪里获取它们?您需要打开该文件并将其转换为图像以获取宽度和高度。我使用文件选择器从本地存储获取该文件。您不需要为此打开该文件--请参阅下面的完整答案。宽度、高度和大小(以及缩略图等)都可以通过StorageFile对象作为元数据提供。为此目的加载整个文件只会导致大量不必要的内存开销。