1

Windows Phone 8でビットマップ画像をぼかしようとしてWriteableBitmapEXライブラリを使用していますこのコードを試しました

Uri uri = new Uri(AnyUri, UriKind.RelativeOrAbsolute);
BitmapImage img1 = new BitmapImage();
img1.UriSource = uri;
img1.CreateOptions = BitmapCreateOptions.None;
WriteableBitmap wbm = new WriteableBitmap(img1);
var wbm2 = WriteableBitmapExtensions.Convolute(wbm, WriteableBitmapExtensions.KernelGaussianBlur5x5);
PanoramaBackground.ImageSource = wbm2;

ただし、行に「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外がありますWriteableBitmap wbm = new WriteableBitmap(img1);

なぜこれが機能しないのですか??

4

1 に答える 1

2

これはうまくいくはずです:

WriteableBitmap bitmap = BitmapFactory.New(0, 0).FromContent("RelativePathHere.png");
var blurredBitmap = WriteableBitmapExtensions.Convolute(bitmap, WriteableBitmapExtensions.KernelGaussianBlur5x5);
ImageControl.Source = blurredBitmap;

編集

Web から画像を取得しているように見えますが、画像がまだ読み込まれていないため、例外が発生しています。ImageOpened イベント ハンドラーをサブスクライブする必要があります。コードは次のとおりです。

Uri uri = new Uri("AbsoluteUriPath.png", UriKind.Absolute);
BitmapImage img1 = new BitmapImage(uri);
img1.CreateOptions = BitmapCreateOptions.None;
img1.ImageOpened += (s, e) =>
{
      WriteableBitmap bitmap = new WriteableBitmap(img1);
      var blurredBitmap = WriteableBitmapExtensions.Convolute(bitmap,
                WriteableBitmapExtensions.KernelGaussianBlur5x5);
            ImageControl.Source = blurredBitmap;
};
于 2014-06-13T13:45:03.557 に答える