public static MemoryStream ToMemoryStream([NotNull] this BitmapSource bitmapSource,
                                                  [NotNull][InstantHandle] BitmapEncoderFactory bitmapEncoderFactory)
        {
            if (bitmapSource == null)
            {
                throw new ArgumentNullException(nameof(bitmapSource));
            }
            if (bitmapEncoderFactory == null)
            {
                throw new ArgumentNullException(nameof(bitmapEncoderFactory));
            }

            var bitmapEncoder = bitmapEncoderFactory.Invoke();

            {
                var bitmapFrame = BitmapFrame.Create(bitmapSource);
                bitmapEncoder.Frames.Add(bitmapFrame);
            }

            var result = new MemoryStream();

            bitmapEncoder.Save(result);

            result.Seek(0L,
                        SeekOrigin.Begin);

            return(result);
        }