Utilities.cs 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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.Threading.Tasks;
  8. namespace WebApplication3.Clases
  9. {
  10. public static class Utilities
  11. {
  12. public static string String2Png(string data)
  13. {
  14. List<string> rows = data.Split("\r\n",StringSplitOptions.RemoveEmptyEntries).ToList<string>();
  15. List<string> cols = rows[0].Split(" ",StringSplitOptions.RemoveEmptyEntries).ToList<string>();
  16. int width = cols.Count;
  17. int height = rows.Count;
  18. int[,] integers = new int[height, width];
  19. int stride = width * 4;
  20. string fileName = @"C:\Users\Admin\Desktop\AAAA\green.png";
  21. string[,] array2Db = new string[height, width];
  22. for(int i= 0; i < height; i++)
  23. {
  24. string[] values = rows[i].Split(" ",StringSplitOptions.RemoveEmptyEntries);
  25. for(int j= 0; j< width; j++)
  26. {
  27. string hexColor = Constants._recharge_geometry_colors[values[j]];
  28. array2Db[i, j] = hexColor;
  29. }
  30. }
  31. // Fill array with random values
  32. for (int x = 0; x < height; ++x)
  33. {
  34. for (int y = 0; y < width; ++y)
  35. {
  36. var color = System.Drawing.ColorTranslator.FromHtml(array2Db[x, y]);
  37. byte[] bgra = new byte[] { color.B, color.G, color.R, color.A };
  38. integers[x, y] = BitConverter.ToInt32(bgra, 0);
  39. }
  40. }
  41. Bitmap b;
  42. unsafe
  43. {
  44. fixed (int* intPtr = &integers[0, 0])
  45. {
  46. b = new Bitmap(width, height, stride, PixelFormat.Format32bppRgb, new IntPtr(intPtr));
  47. }
  48. }
  49. using (b)
  50. {
  51. b.Save(fileName, ImageFormat.Png);
  52. }
  53. return fileName;
  54. }
  55. public static void BinaryToFile(byte[] ba, string fileName)
  56. {
  57. using (FileStream fs = new FileStream(fileName, FileMode.Create))
  58. {
  59. using (BinaryWriter bw = new BinaryWriter(fs))
  60. {
  61. bw.Write(ba);
  62. }
  63. }
  64. }
  65. }
  66. }