/// <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)}"; }