0

UIElement(外部 URL 画像を含む) を含むいくつかのImageがあり、これらの要素のサムネイルをキャッチしたいのでWriteableBitmap、各 UIElement のピクセルをキャッチするために使用します。

ただし、Image使用するためにピクセルをキャッチしようとすると:

WriteableBitmap wb = new WriteableBitmap(image, new ScaleTransform()
                     {
                         ScaleX = 0.5,
                         ScaleY = 0.5,
                     });
...
wb.GetPixeli(x, y); // Throws exception

http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.writeablebitmap(v=vs.95).aspx

WriteableBitmap クラスには、WriteableBitmap がクロスドメイン コンテンツを使用して構築されている場合、Pixels 配列へのアクセスを制限するセキュリティ モデルがあります。たとえば、別のドメインからの URL を参照する BitmapImage を使用して構築された WriteableBitmap は、その Pixels 配列へのアクセスを許可しません。この制限は、コンテンツの一部またはすべてを設定するために URL 派生プロパティを使用するすべての UI 要素に適用されます。特に、この制限は、「MediaElement から実行中のビデオのフレームを取得する」シナリオに適用されます。MediaElement.Source が別のドメインのビデオ ファイルを参照する場合、要素ソースとして MediaElement を参照することによって作成された WriteableBitmap は、Pixels 配列へのアクセスを制限します。

UIElementこれらのいくつかの s (要素を含む) のサムネイルを取得するにImageは、画像を一時ディレクトリにダウンロードしてからレンダリングする必要がありますか?

4

1 に答える 1

0

私のアドバイスは、実行しようとしていることを再確認することです。Silverlight アプリケーションを作成している場合は、完全なイメージをダウンロードする前に、クライアントに流れるデータの量を減らしたいと思う可能性があります。これらのサムネイルをサーバー側 (オンザフライまたはキャッシュ) で作成し、サイズを小さくして配信し、完全な .NET フレームワークを使用してサムネイルを作成する方がよいでしょうか?

于 2012-11-16T11:44:32.493 に答える