/// <summary>
        /// Optimizes the specified raw image.
        /// </summary>
        /// <param name="rawImage">The raw image.</param>
        /// <param name="imageFormat">The image format.</param>
        /// <param name="quality">The quality.</param>
        /// <returns>Image.</returns>
        public Image Optimize(Image rawImage, ImageFormat imageFormat, long quality)
        {
            try
            {
                Image tempImage = (Image)rawImage.Clone();

                Encoder myEncoder = Encoder.Quality;

                EncoderParameters myEncoderParameters = new EncoderParameters(1);

                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);

                myEncoderParameters.Param[0] = myEncoderParameter;

                MemoryStream stream = new MemoryStream();

                tempImage.Save(stream, imageFormat.ToImageCodecInfo(), myEncoderParameters);

                Bitmap compressedBitmap = new Bitmap(stream);

                return compressedBitmap;
            }
            catch (Exception ex)
            {
                return new Bitmap(ImageFactory.Draw(ex.Message));
            }
        }
 /// <summary>
 /// To the data URI.
 /// </summary>
 /// <param name="image">The image.</param>
 /// <param name="imageFormat">The image format.</param>
 /// <returns>System.String.</returns>
 public static string ToDataUri(this Image image, ImageFormat imageFormat)
 {
     return $"data:{imageFormat.ToImageCodecInfo().MimeType};base64,{image.ToBase64(imageFormat)}";
 }