如何解决WriteableBitmap AccessViolationException

时间:2013-11-20 18:30:21

标签: c# windows-runtime windows-store-apps writeablebitmap writeablebitmapex

我目前正在使用WriteableBitmapEx extension作为可写的Bitmap类。到目前为止一切正常,我在WinRT项目中这样做。我运行此代码将位图合并在一起。

 Windows.Storage.Pickers.FileSavePicker save = new Windows.Storage.Pickers.FileSavePicker();
 save.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.Desktop;
 save.DefaultFileExtension = ".png";
 save.FileTypeChoices.Add("PNG", new string[] { ".png" });
 StorageFile filesave = await save.PickSaveFileAsync();
 IOutputStream ab = await filesave.OpenAsync(FileAccessMode.ReadWrite);

 if (ab != null)
 {
      //   await _inkManager.SaveAsync(ab);

      var imageUri = new Uri("http://i.imgur.com/rbiLg5Z.gif");
      var fullSizeBitmap = new Windows.UI.Xaml.Media.Imaging.BitmapImage(imageUri);
      // image.Source = fullSizeBitmap;

      var file = await WebFile.SaveAsync(imageUri);
      WriteableBitmap myTempImage = await new WriteableBitmap(1, 1).LoadAsync(file);

      // error!
      myImage.Blit(new Rect(0, 0, 20, 28), myTempImage, new Rect(0, 0, 20, 38));

现在在myImage.Blit的行上,我收到了一个未处理的访问冲突异常。我真的不明白发生了什么或者我做错了什么。所以我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

很可能源或目标WriteableBitmap的大小小于您传递的矩形。或者,您正在使用的其中一种方法可能存在错误。验证您正在处理的位图的PixelWidth / PixelHeight。