2

WP8 で画像のサムネイルを作成する必要がありますが、現在問題に直面しています。一言で言えば、私はこれを行う唯一の方法、つまりクラスを使用することを知ってSystem.Windows.Controls.ImageSystem.Windows.Media.Imaging.BitmapImageますSystem.Windows.Media.Imaging.WritableBitmap. また、スレッドプールで実行されている他の大きな操作の一部であるため、スレッドプールでサムネイルの作成を実行しようとしています。

すでにお気づきかもしれませんが、上記のクラスのインスタンスを作成しようとしても、無効なクロススレッド アクセスで失敗しています。このサムネイルは UI で使用されず、ファイルに保存されるだけで、後でファイルから表示されるため、これは本当に残念です。私の仕事は UI スレッドとは何の関係もなく、まだこの制限に直面しています。

画像ストリームからサムネイルを作成する他の方法はありますか (PhotoChooser タスクから取得しています)。これらの UI にバインドされたクラスを必要としない他の API でしょうか? それをグーグルで検索しようとしましたが、うまくいきませんでした。

4

2 に答える 2

2

ええ、WriteableBitmap を使用するには、UI 文字列にアクセスする必要があります。Dispatcher クラスを使用して、ワークフローの一部として UI スレッドで作業をスケジュールする必要がある場合があります。

他に考えられる唯一のことは、画像を電話の MediaLibrary に保存し、Picture.GetThumbnail() メソッドを使用して非常に低解像度のサムネイルを取得することです。UI スレッドにアクセスしなくても機能する場合と機能しない場合があります。また、ユーザーの MediaLibrary に画像を追加すると、それらを削除することはできないため、それらのフォルダーをスパムにしないように注意してください。

于 2013-02-14T00:10:10.027 に答える