You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
backend-duoji-monitor/libs/win6422/HeatMap.h

68 lines
1.8 KiB
C

5 years ago
#ifndef _HEATMAP_H__
#define _HEATMAP_H__
#ifdef WIN32
#if defined(HEATMAP_EXPORTS)
#define HEATMAP_API __declspec(dllexport)
#else
#define HEATMAP_API __declspec(dllimport)
#endif
#define CALLMETHOD __stdcall
#else
#define HEATMAP_API
#define CALLMETHOD
#endif
#ifndef HEATMAP_API
#define HEATMAP_API
#endif
#ifdef __cplusplus
extern "C" {
#endif
//Bmpλͼ<CEBB><CDBC>Ϣ
typedef struct bmpImageInfo
{
unsigned char *pBuffer; //BmpͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
int nWidth; //ͼƬ<CDBC><C6AC><EFBFBD><EFBFBD>
int nHeight; //ͼƬ<CDBC>߶<EFBFBD>
int nBitCount; //ͼƬλ<C6AC><CEBB><><D6A7><38><CEBB>24λ<34><CEBB>32λ
int nDirection; //<2F><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD> 0<><30><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ң<EFBFBD> 1<><31><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}BMPIMAGE_INFO;
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct heatMapInfoIn
{
BMPIMAGE_INFO stuGrayBmpInfo; //8λBmp<6D>Ҷ<EFBFBD><D2B6>ȶ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͼƬͷ<C6AC><CDB7><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
BMPIMAGE_INFO stuBkBmpInfo; //<2F><><EFBFBD><EFBFBD>ͼBmpλͼ<CEBB><CDBC><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ͼƬͷ<C6AC><CDB7><EFBFBD><EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD>
}HEATMAP_IMAGE_IN;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
typedef struct heatMapInfoOut
{
unsigned char *pBuffer; //<2F><><EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD>ɫ<EFBFBD>ȶ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD>ͼƬͷ<C6AC><CDB7>,<2C><><EFBFBD>ߡ<EFBFBD>λ<EFBFBD><CEBB><EFBFBD>ͱ<EFBFBD><CDB1><EFBFBD>ͼ<EFBFBD><CDBC>ͬ
int nPicSize; //ͼƬ<CDBC>ڴ<EFBFBD><DAB4><EFBFBD>С(<28><><EFBFBD><EFBFBD>ͷ) <20><><EFBFBD><EFBFBD>*<2A><>*nBitCount/8 + 54
float fOpacity; //͸<><CDB8><EFBFBD><EFBFBD>,<2C><>Χ0-1
}HEATMAP_IMAGE_Out;
///\brief <20><><EFBFBD><EFBFBD><EFBFBD>ȶ<EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
/// param [in] stuBmpInfoIn Bmpλͼ<CEBB><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// param [in] stuBmpInfoOut Bmpλͼ<CEBB><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>ͼƬͷ
/// param [out] true or false
HEATMAP_API bool CALLMETHOD CreateHeatMap(const HEATMAP_IMAGE_IN *stuBmpInfoIn, HEATMAP_IMAGE_Out *stuBmpInfoOut);
///\brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ɻҶ<C9BB><D2B6><EFBFBD><EFBFBD><EFBFBD>
/// param [in] srcData <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// param [in] width <20><>
/// param [in] height <20><>
/// param [in] resultOut <20>Ҷ<EFBFBD><D2B6><EFBFBD><EFBFBD><EFBFBD>
/// param [out] true or false
HEATMAP_API bool CALLMETHOD TransNetDataToGrayData(unsigned char * srcData, int width, int height, unsigned char * resultOut);;
#ifdef __cplusplus
}
#endif
#endif //_HEATMAP_H__