nokia イメージング SDK 1.1 を使用してイメージング アプリに取り組んでいます。かなり単純に見えるタスク (ユーザーが画像を選択し、それにいくつかのフィルターを適用する) が、現在 2 日間ブロックされています。何百もの行を書き、すべての Nokia Dev Samples を確認しました (ほとんどの場合、非常によく構成されていますが、私のようなイメージング SDK 初心者には複雑すぎます) が、常に次の例外が発生します。
{System.NullReferenceException: Invalid pointer at Nokia.Graphics.Imaging.BitmapRenderer.RenderAsync()
これがコードです (フィルターが渡される部分を減らしたので、簡単にするために空の FilterEffect だけが渡されます)。
PhotoChooserTask task = new PhotoChooserTask();
task.Completed += async (result,choosen) =>
{
Stream stream = choosen.ChosenPhoto;
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.SetSource(stream);
WriteableBitmap bitmap = new WriteableBitmap(bitmapImage);
WriteableBitmapRenderer renderer = new WriteableBitmapRenderer(new FilterEffect(), bitmap, OutputOption.PreserveAspectRatio);
await renderer.RenderAsync();
};
task.ShowCamera = true;
task.Show();
したがって、すべてをよく理解していれば、何らかの無効なポインターが渡されたためにアプリがクラッシュしていますが、ビットマップは有効であるか、少なくともサイズは正しいため、データも渡されていると思います。 .
とにかく、ここにスタックトレースがあります
at Nokia.Graphics.Imaging.BitmapRenderer.RenderAsync()
at Nokia.Graphics.Imaging.WriteableBitmapRenderer.<<RenderAsync>b__0>d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at RealtimeFilterDemo.MainPage.<<ShutterButton_Tap>b__1a>d__1c.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__0(Object state)