0

Win 8 アプリの写真からサイズ (ピクセル、バイト) を取得しようとしています。openPicker でファイルを選択すると、ファイルが取得されます。しかし、サイズ属性が見つかりませんか? ファイルが大きすぎる場合は、エラーを表示します。どうすればこの情報を入手できますか?ありがとう。

4

2 に答える 2

0

この情報は、ファイルを開いたりメモリにロードしたりすることなく、StorageFile オブジェクト自体から取得できます。

便宜上、myFile が問題の StorageFile であるとしましょう。

画像のサイズについては、myFile.properties.getImagePropertiesAsyncを呼び出します。この結果は、幅と高さのプロパティを含むImagePropertiesオブジェクトです。ImageProperties を取得する例は、単純なイメージング サンプルのシナリオ 1 にあります。

ファイル サイズについては、myFile.getBasicPropertiesAsyncを呼び出します。結果は、size プロパティがその値を持つBasicPropertiesオブジェクトです。

于 2013-11-08T17:56:27.260 に答える
0

さらに数時間検索して試した後、次のように解決しました。

//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....
                });
             });
        });

それが他の人に役立つことを願っています。

于 2013-11-08T16:03:59.030 に答える