PictureService.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Runtime.InteropServices.ComTypes;
  4. using System.Text;
  5. using static QuickNV.HikvisionNetSDK.Defines;
  6. using static QuickNV.HikvisionNetSDK.Methods;
  7. namespace QuickNV.HikvisionNetSDK.Api.Service
  8. {
  9. public class PictureService
  10. {
  11. private HvSession session;
  12. internal PictureService(HvSession session)
  13. {
  14. this.session = session;
  15. }
  16. public void CaptureJPEGPicture(int channelId, string fileName)
  17. {
  18. NET_DVR_JPEGPARA lpJpegPara = new NET_DVR_JPEGPARA();
  19. lpJpegPara.wPicQuality = 0; //图像质量 Image quality
  20. lpJpegPara.wPicSize = 0xff; //抓图分辨率 Picture size: 0xff-Auto(使用当前码流分辨率)
  21. //抓图分辨率需要设备支持,更多取值请参考SDK文档
  22. Invoke(NET_DVR_CaptureJPEGPicture(session.UserId, channelId, ref lpJpegPara, fileName));
  23. }
  24. public byte[] CaptureJPEGPicture_NEW(int channelId)
  25. {
  26. byte[] buffer = new byte[10 * 1024 * 1024];
  27. NET_DVR_JPEGPARA lpJpegPara = new NET_DVR_JPEGPARA();
  28. lpJpegPara.wPicQuality = 0; //图像质量 Image quality
  29. lpJpegPara.wPicSize = 0xff; //抓图分辨率 Picture size: 0xff-Auto(使用当前码流分辨率)
  30. uint ret = 0;
  31. Invoke(NET_DVR_CaptureJPEGPicture_NEW(session.UserId, channelId, ref lpJpegPara, buffer, (uint)buffer.Length, ref ret));
  32. var retBuffer = new byte[ret];
  33. Buffer.BlockCopy(buffer, 0, retBuffer, 0, (int)ret);
  34. return retBuffer;
  35. }
  36. }
  37. }