#ifndef INTERACTIVEHAND_H #define INTERACTIVEHAND_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "template_singleton.h" #include "libs/include/libzkfp.h" #include "libs/include/libzkfperrdef.h" #include "libs/include/libzkfptype.h" #define INTERACTIVE_HAND_IMAGE_URL "InteractiveHandImage" class InteractiveHand : public QQuickImageProvider { SINGLETON_DEFINE(InteractiveHand) // 定义为单例类 Q_OBJECT private: InteractiveHand(); ~InteractiveHand(); // 获取图像url QString getImageUrl(); public: // 设置指纹采集回调 Q_INVOKABLE void setFingerImageAppearCallBack(QJSValue callback); // 指纹图像播放 (采集) Q_INVOKABLE void fingerImagePlay(); // 指纹图像停止 (采集) Q_INVOKABLE void fingerImageStop(); public: // 初始化指纹句柄 void initHandle(); // 销毁指纹句柄 void destroyHandle(); QImage getImage(); protected: QImage requestImage(const QString &, QSize *, const QSize &); void timerEvent(QTimerEvent *event); private: bool m_isInit = false; // 是否初始化成功 int m_timerId; // 当前定时器ID int m_FrameId; // 帧过滤 QImage m_image; // 图像 HANDLE m_handle; // 指纹采集器句柄 quint8 m_switch; // 开关标志 int m_imageW; // 图像宽 int m_imageH; // 图像高 QByteArray m_imageData; // 图像数据 QByteArray m_templateData; // 模板数据 unsigned int m_templateSize; // 模板长度 QJSValue m_imageAppearCallback; // 发现指纹回调 }; #endif // INTERACTIVEHAND_H