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 } } }
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 } } }