API
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.

ImageFormatter.cs 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using System;
  2. using System.Drawing;
  3. using System.IO;
  4. namespace UnivateProperties_API.Containers.Property
  5. {
  6. public class ImageFormatter
  7. {
  8. public static string Base64ToImage(string binData, string path, string name)
  9. {
  10. string extention = ".jpg";
  11. if (binData.StartsWith("data:image/gif;base64,"))
  12. {
  13. extention = ".gif";
  14. binData = binData.Replace("data:image/gif;base64,", "");
  15. }
  16. if (binData.StartsWith("data:image/jpeg;base64,"))
  17. {
  18. extention = ".jpg";
  19. binData = binData.Replace("data:image/jpeg;base64,", "");
  20. }
  21. if (binData.StartsWith("data:image/png;base64,"))
  22. {
  23. extention = ".png";
  24. binData = binData.Replace("data:image/png;base64,", "");
  25. }
  26. if (!Directory.Exists(path))
  27. Directory.CreateDirectory(path);
  28. string filePath = string.Format(@"{0}\{1}{2}", path, name, extention);
  29. File.WriteAllBytes(filePath, Convert.FromBase64String(binData));
  30. return filePath;
  31. }
  32. public static string ImageToBase64(string Path)
  33. {
  34. if (File.Exists(Path))
  35. {
  36. using (Image image = Image.FromFile(Path))
  37. {
  38. using (MemoryStream m = new MemoryStream())
  39. {
  40. image.Save(m, image.RawFormat);
  41. byte[] imageBytes = m.ToArray();
  42. string base64String = Convert.ToBase64String(imageBytes);
  43. if (Path.EndsWith(".jpg") || Path.EndsWith(".jpeg"))
  44. base64String = "data:image/jpeg;base64," + base64String;
  45. if (Path.EndsWith(".gif"))
  46. base64String = "data:image/gif;base64," + base64String;
  47. if (base64String.EndsWith(".png"))
  48. base64String = "data:image/png;base64," + base64String;
  49. return base64String;
  50. }
  51. }
  52. }
  53. else
  54. return "";
  55. }
  56. public static string ImageToURL(string Path, string URL)
  57. {
  58. string url = URL;
  59. string[] folders = Path.Split(new char[] { '\\' });
  60. bool startAdd = false;
  61. foreach(var folder in folders)
  62. {
  63. if (!startAdd && folder == "img")
  64. startAdd = true;
  65. if (startAdd)
  66. url += folder + "/";
  67. }
  68. return url.Substring(0, url.Length - 1);
  69. }
  70. }
  71. }