You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4 KiB

1 month ago
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Drawing.Imaging;
  5. using System.IO;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace ShenTun.Camera.Common
  10. {
  11. public class ImageHelper
  12. {
  13. public static string ConvertImageToBase64(Image file)
  14. {
  15. using (MemoryStream memoryStream = new MemoryStream())
  16. {
  17. file.Save(memoryStream, file.RawFormat);
  18. byte[] imageBytes = memoryStream.ToArray();
  19. return Convert.ToBase64String(imageBytes);
  20. }
  21. }
  22. public static Image ConvertBase64ToImage(string base64String)
  23. {
  24. byte[] imageBytes = Convert.FromBase64String(base64String);
  25. using (MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length))
  26. {
  27. ms.Write(imageBytes, 0, imageBytes.Length);
  28. return Image.FromStream(ms, true);
  29. }
  30. }
  31. public static ImageCodecInfo GetEncoder(ImageFormat format)
  32. {
  33. ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
  34. foreach (ImageCodecInfo codec in codecs)
  35. {
  36. if (codec.FormatID == format.Guid)
  37. {
  38. return codec;
  39. }
  40. }
  41. return null;
  42. }
  43. }
  44. }