Esempio n. 1
0
        /// <summary>
        /// Captures a photo. Photo data is stored to ImageStream, and
        /// application is navigated to the preview page after capturing.
        /// </summary>
        private async Task Capture()
        {
            bool goToPreview = false;

            MemoryStream photoStream     = new MemoryStream();
            MemoryStream thumbnailStream = new MemoryStream();

            if (!_capturing)
            {
                _capturing = true;

                CameraCaptureSequence sequence = _photoCaptureDevice.CreateCaptureSequence(1);
                sequence.Frames[0].CaptureStream   = photoStream.AsOutputStream();
                sequence.Frames[0].ThumbnailStream = thumbnailStream.AsOutputStream();

                await _photoCaptureDevice.PrepareCaptureSequenceAsync(sequence);

                await sequence.StartCaptureAsync();

                _capturing  = false;
                goToPreview = true;
            }

            _photoCaptureDevice.SetProperty(
                KnownCameraPhotoProperties.LockedAutoFocusParameters,
                AutoFocusParameters.None);

            if (goToPreview)
            {
                NokiaImaginHelper.PreparePhoto(photoStream, thumbnailStream);
                NavigationService.Navigate(new Uri(String.Format("/FilterPreviewPage.xaml?index={0}&shouldCrop={1}", _dateIndex, _sizeMode), UriKind.Relative));
            }
        }
Esempio n. 2
0
        void photoTask_Completed(object sender, PhotoResult e)
        {
            if (e.TaskResult == TaskResult.OK && e.Error == null)
            {
                var photoStream     = new MemoryStream();
                var thumbnailStream = new MemoryStream();
                var library         = new MediaLibrary();
                var dateTaken       = DateTime.Now;

                bool found = false;
                foreach (var pic in library.Pictures)
                {
                    if (e.OriginalFileName.Equals(MediaLibraryExtensions.GetPath(pic)))
                    {
                        pic.GetImage().CopyTo(photoStream);
                        photoStream.Seek(0, SeekOrigin.Begin);

                        pic.GetPreviewImage().CopyTo(thumbnailStream);
                        thumbnailStream.Seek(0, SeekOrigin.Begin);

                        dateTaken = pic.Date;

                        NokiaImaginHelper.PreparePhoto(photoStream, thumbnailStream);
                        found = true;
                        break;
                    }
                }

                if (found)
                {
                    NavigationService.Navigate(new Uri(String.Format("/FilterPreviewPage.xaml?dateTaken={0}&shouldCrop={1}", dateTaken.Ticks, Constant.NORMAL_MODE), UriKind.Relative));
                }
            }
        }