/// <summary> /// Handles the FrameAvailable event of the Camera control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="CameraFrameEventArgs"/> instance containing the event data.</param> /// <exception cref="NotImplementedException"></exception> void Camera_FrameAvailable(object sender, CameraFrameEventArgs e) { var frameinfo = e.Value; if (frameinfo.View != View) { return; } PXCMImage.PixelFormat format; Dispatcher.Invoke(() => { switch (View) { //case CameraViews.Colour: format = PXCMImage.PixelFormat.PIXEL_FORMAT_RGB32; break; //case CameraViews.Depth: format = PXCMImage.PixelFormat.PIXEL_FORMAT_DEPTH; break; //case CameraViews.Infrared: format = PXCMImage.PixelFormat.PIXEL_FORMAT_Y8; break; default: format = PXCMImage.PixelFormat.PIXEL_FORMAT_RGB32; break; } PXCMImage.ImageData data; var image = frameinfo.SourceFrame as PXCMImage; image.AcquireAccess(PXCMImage.Access.ACCESS_READ, format, out data); Source = data.ToWritableBitmap(image.info.width, image.info.height, 72, 72); image.ReleaseAccess(data); }); }
/// <summary> /// Handles the FrameAvailable event of the Camera control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="CameraFrameEventArgs"/> instance containing the event data.</param> /// <exception cref="NotImplementedException"></exception> void Camera_FrameAvailable(object sender, CameraFrameEventArgs e) { var frameinfo = e.Value; if (frameinfo.View != View) return; PXCMImage.PixelFormat format; Dispatcher.Invoke(() => { switch(View) { //case CameraViews.Colour: format = PXCMImage.PixelFormat.PIXEL_FORMAT_RGB32; break; //case CameraViews.Depth: format = PXCMImage.PixelFormat.PIXEL_FORMAT_DEPTH; break; //case CameraViews.Infrared: format = PXCMImage.PixelFormat.PIXEL_FORMAT_Y8; break; default: format = PXCMImage.PixelFormat.PIXEL_FORMAT_RGB32; break; } PXCMImage.ImageData data; var image = frameinfo.SourceFrame as PXCMImage; image.AcquireAccess(PXCMImage.Access.ACCESS_READ, format, out data); Source = data.ToWritableBitmap(image.info.width, image.info.height, 72, 72); image.ReleaseAccess(data); }); }
protected void OnCameraFrame(CameraFrameEventArgs args) { var cameraFrame = CameraFrame; if (cameraFrame != null) { cameraFrame(this, args); } }
/// <summary> /// Handles the FrameAvailable event of the Camera control. /// </summary> /// <param name="sender">The source of the event.</param> /// <param name="e">The <see cref="CameraFrameEventArgs"/> instance containing the event data.</param> private void Camera_FrameAvailable(object sender, CameraFrameEventArgs e) { var frame = Camera.GetRawFrame(e.Value.SourceFrame); _video.WriteFrame(true, frame, 0, frame.Length); }