示例#1
0
        public async void SetImageSequence(List <IImageProvider> imageProviders)
        {
            ShowProgressIndicator("Aligning frames");
            SetControlsEnabled(false);

            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders  = _unalignedImageProviders;

            // Create aligned images
            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources         = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                _alignedImageProviders = await imageAligner.AlignAsync();
            }

            // Create on-screen bitmap for rendering the image providers
            IImageProvider    imageProvider = _onScreenImageProviders[0];
            ImageProviderInfo info          = await imageProvider.GetInfoAsync();

            int width  = (int)info.ImageSize.Width;
            int height = (int)info.ImageSize.Height;

            _foregroundImage = new WriteableBitmap(width, height);
            _backgroundImage = new WriteableBitmap(width, height);

            // Render the first frame of sequence
            await Render(0, true);

            InitializeAnimatedAreaBasedOnImageDimensions(width, height);

            SetControlsEnabled(true);
            HideProgressIndicator();
        }
示例#2
0
        public async Task PrepareImageSequence(List <IImageProvider> imageProviders)
        {
            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders  = _unalignedImageProviders;

            IAsyncImageResource asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
            var info = await asyncImageResource.LoadAsync();

            _unalignedImageWidth  = (int)info.ImageSize.Width;
            _unalignedImageHeight = (int)info.ImageSize.Height;

            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources         = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                try
                {
                    _alignedImageProviders = await imageAligner.AlignAsync();

                    asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
                    info = await asyncImageResource.LoadAsync();

                    _alignedImageWidth  = (int)info.ImageSize.Width;
                    _alignedImageHeight = (int)info.ImageSize.Height;
                    await EnableAlign();
                }
                catch (Exception)
                {
                    // If align fails, fail silently but don't enable the align button on UI
                }
            }
        }
        public async void SetImageSequence(List<IImageProvider> imageProviders)
        {
            ShowProgressIndicator("Aligning frames");
            SetControlsEnabled(false);

            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders = _unalignedImageProviders;

            // Create aligned images
            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                _alignedImageProviders = await imageAligner.AlignAsync();
            }

            // Create on-screen bitmap for rendering the image providers
            IImageProvider imageProvider = _onScreenImageProviders[0];
            ImageProviderInfo info = await imageProvider.GetInfoAsync();
            int width = (int)info.ImageSize.Width;
            int height = (int)info.ImageSize.Height;

            _foregroundImage = new WriteableBitmap(width, height);
            _backgroundImage = new WriteableBitmap(width, height);

            // Render the first frame of sequence
            await Render(0, true);

            InitializeAnimatedAreaBasedOnImageDimensions(width, height);

            SetControlsEnabled(true);
            HideProgressIndicator();
        }
        public async Task PrepareImageSequence(List<IImageProvider> imageProviders)
        {
            _unalignedImageProviders = imageProviders;
            _onScreenImageProviders = _unalignedImageProviders;

            IAsyncImageResource asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
            var info = await asyncImageResource.LoadAsync();
            _unalignedImageWidth = (int)info.ImageSize.Width;
            _unalignedImageHeight = (int)info.ImageSize.Height;

            using (ImageAligner imageAligner = new ImageAligner())
            {
                imageAligner.Sources = _unalignedImageProviders;
                imageAligner.ReferenceSource = _unalignedImageProviders[0];

                try
                {
                    _alignedImageProviders = await imageAligner.AlignAsync();

                    asyncImageResource = (IAsyncImageResource)_unalignedImageProviders[0];
                    info = await asyncImageResource.LoadAsync();
                    _alignedImageWidth = (int)info.ImageSize.Width;
                    _alignedImageHeight = (int)info.ImageSize.Height;
                    await EnableAlign();
                }
                catch (Exception)
                {
                    // If align fails, fail silently but don't enable the align button on UI
                }
            }
        }