InteractiveHand.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef INTERACTIVEHAND_H
  2. #define INTERACTIVEHAND_H
  3. #include <QObject>
  4. #include <QJSValue>
  5. #include <QTimer>
  6. #include <QDateTime>
  7. #include <QImage>
  8. #include <QVideoFrame>
  9. #include <QPainter>
  10. #include <QString>
  11. #include <QBuffer>
  12. #include <QByteArray>
  13. #include <QTimerEvent>
  14. #include <QCamera>
  15. #include <QVideoSink>
  16. #include <QMediaDevices>
  17. #include <QMediaCaptureSession>
  18. #include <QQuickImageProvider>
  19. #include <QtMath>
  20. #include <QRandomGenerator>
  21. #include "template_singleton.h"
  22. #include "libs/include/libzkfp.h"
  23. #include "libs/include/libzkfperrdef.h"
  24. #include "libs/include/libzkfptype.h"
  25. #define INTERACTIVE_HAND_IMAGE_URL "InteractiveHandImage"
  26. class InteractiveHand : public QQuickImageProvider
  27. {
  28. SINGLETON_DEFINE(InteractiveHand) // 定义为单例类
  29. Q_OBJECT
  30. private:
  31. InteractiveHand();
  32. ~InteractiveHand();
  33. // 获取图像url
  34. QString getImageUrl();
  35. public:
  36. // 设置指纹采集回调
  37. Q_INVOKABLE void setFingerImageAppearCallBack(QJSValue callback);
  38. // 指纹图像播放 (采集)
  39. Q_INVOKABLE void fingerImagePlay();
  40. // 指纹图像停止 (采集)
  41. Q_INVOKABLE void fingerImageStop();
  42. public:
  43. // 初始化指纹句柄
  44. void initHandle();
  45. // 销毁指纹句柄
  46. void destroyHandle();
  47. QImage getImage();
  48. protected:
  49. QImage requestImage(const QString &, QSize *, const QSize &);
  50. void timerEvent(QTimerEvent *event);
  51. private:
  52. bool m_isInit = false; // 是否初始化成功
  53. int m_timerId; // 当前定时器ID
  54. int m_FrameId; // 帧过滤
  55. QImage m_image; // 图像
  56. HANDLE m_handle; // 指纹采集器句柄
  57. quint8 m_switch; // 开关标志
  58. int m_imageW; // 图像宽
  59. int m_imageH; // 图像高
  60. QByteArray m_imageData; // 图像数据
  61. QByteArray m_templateData; // 模板数据
  62. unsigned int m_templateSize; // 模板长度
  63. QJSValue m_imageAppearCallback; // 发现指纹回调
  64. };
  65. #endif // INTERACTIVEHAND_H