2

ローカルの画像ライブラリから画像を読み込む Win8/WinJS アプリを構築しています。有効な画像を読み込んでリストビューに表示するために、すべてが正常に機能しています。

次に、破損した画像を検出し、それらの画像に対してアプリの一部を無効にする必要があります。

たとえば、テキスト ファイルを開いてテキストを入力します。ファイルを .jpg として保存します。これは明らかに有効な jpg 画像にはなりません。私のアプリは .jpg という名前のためにファイルをロードしますが、画像が破損しているため、アプリの特定の部分を無効にする必要があります。

読み込んだ画像が有効な画像ファイルかどうかを確認する方法はありますか? 破損しているかどうかを確認するには?

StorageFile、Windows.Storage.Search 関連オブジェクトなどの標準の WinRT/WinJS オブジェクトを使用して、ファイル タイプの検索に基づいてイメージ リストを読み込みます。

検索結果から破損した画像を除外する必要はありません。誰かが ListView で画像を選択した後、画像が破損しているかどうかを確認できるようにする必要があります。

4

3 に答える 3

1

考えられる解決策の 1 つは、イメージwidthheightプロパティをチェックして、イメージが有効かどうかを判断することです。

于 2012-10-03T18:02:59.863 に答える
0

ええ、contentTypeプロパティはファイル拡張子が何であれ返します。画像のプロパティを確認するための最良の方法は次のとおりです。

file.properties.getImagePropertiesAsync()
               .done(function(imageProps) {
                   if(imageProps.width === 0 && imageProps.height === 0) {
                       // I'm probably? likely? invalid.
                   });
于 2012-10-05T02:55:29.230 に答える
0

ここで、SelectImagePlaceholder はイメージ コントロールです.. =)

StorageFile ファイル;

        using (IRandomAccessStream fileStream = await file.OpenAsync(Windows.Storage.FileAccessMode.Read))
        {
            try
            {
                // Set the image source to the selected bitmap
                BitmapImage bitmapImage = new BitmapImage();

                await bitmapImage.SetSourceAsync(fileStream);


                SelectImagePlaceholder.Source = bitmapImage;
                //SelectImagePlaceholder.HorizontalAlignment = HorizontalAlignment.Center;
                //SelectImagePlaceholder.Stretch = Stretch.None;
                this.SelectImagePlaceholder.DataContext = file;

                _curMedia = file;
            }
            catch (Exception ex)
            {
                //code Handle the corrupted or invalid image
            }
        }
于 2013-10-23T08:25:47.427 に答える