VehicleUtil.cs 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. using log4net;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Linq;
  6. using System.Runtime.InteropServices;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. namespace DeviceCenter
  10. {
  11. class VehicleUtil
  12. {
  13. public static readonly ILog log = LogManager.GetLogger("CamTool");
  14. public static string getVehicleType(byte type)
  15. {
  16. string vehicleType = "";
  17. switch (type)//车辆类型
  18. {
  19. case 0:
  20. {
  21. vehicleType = "未知车型";
  22. break;
  23. }
  24. case 1:
  25. {
  26. vehicleType = "大型车";
  27. break;
  28. }
  29. case 2:
  30. {
  31. vehicleType = "中型车";
  32. break;
  33. }
  34. case 3:
  35. {
  36. vehicleType = "小型车";
  37. break;
  38. }
  39. case 4:
  40. {
  41. vehicleType = "摩托车";
  42. break;
  43. }
  44. case 5:
  45. {
  46. vehicleType = "行人";
  47. break;
  48. }
  49. default:
  50. {
  51. vehicleType = "未知车型";
  52. break;
  53. }
  54. }
  55. return vehicleType;
  56. }
  57. public static string getColor(byte color)
  58. {
  59. string vehicleColor = "";
  60. switch (color)//车牌颜色
  61. {
  62. case 0:
  63. vehicleColor = "蓝色";
  64. break;
  65. case 1:
  66. vehicleColor = "黄色";
  67. break;
  68. case 2:
  69. vehicleColor = "白色";
  70. break;
  71. case 3:
  72. vehicleColor = "黑色";
  73. break;
  74. case 5:
  75. vehicleColor = "绿色";
  76. break;
  77. case 6:
  78. vehicleColor = "黄绿";
  79. break;
  80. case 4:
  81. default:
  82. vehicleColor = "未识别";
  83. break;
  84. }
  85. return vehicleColor;
  86. }
  87. public static string savePanoramaPic(string parentDir, ref CarCamSDK.T_PicInfo tPicInfo, int type)
  88. {
  89. string strImageFile1 = null;
  90. string strTime = DateTime.Now.ToLocalTime().ToString("yyyy-MM-dd_HH_mm_ss_fff");
  91. if ((type == 1 && tPicInfo.ptPanoramaPicBuff != IntPtr.Zero && tPicInfo.uiPanoramaPicLen != 0) ||
  92. (type == 2 && tPicInfo.ptVehiclePicBuff != IntPtr.Zero && tPicInfo.uiVehiclePicLen != 0))
  93. {
  94. try
  95. {
  96. log.Info("图片1:" + strImageFile1);
  97. byte[] BytePanoramaPicBuff = new byte[type == 1 ? tPicInfo.uiPanoramaPicLen : tPicInfo.uiVehiclePicLen];
  98. Marshal.Copy(type == 1 ? tPicInfo.ptPanoramaPicBuff : tPicInfo.ptVehiclePicBuff, BytePanoramaPicBuff, 0,
  99. (int)(type == 1 ? tPicInfo.uiPanoramaPicLen : tPicInfo.uiVehiclePicLen));
  100. strImageFile1 = String.Format("{0}\\{1}.jpg", parentDir, strTime);
  101. FileStream fs = new FileStream(strImageFile1, FileMode.Create, FileAccess.Write | FileAccess.Read, FileShare.None);
  102. fs.Write(BytePanoramaPicBuff, 0, (int)(type == 1 ? tPicInfo.uiPanoramaPicLen : tPicInfo.uiVehiclePicLen));
  103. //pictureBoxPlate.Image = Image.FromStream(fs);
  104. fs.Close();
  105. fs.Dispose();
  106. }
  107. catch (Exception e)
  108. {
  109. strImageFile1 = null;
  110. log.Error("写入图片出错", e);
  111. }
  112. }
  113. return strImageFile1;
  114. }
  115. }
  116. }