package com.dahua.netsdk.lib; import com.dahua.netsdk.lib.NetSDKLib.SdkStructure; import com.sun.jna.Library; import com.sun.jna.Native; import com.sun.jna.Pointer; /** 热度图转换库 JNA接口封装 */ public interface HeatMapLib extends Library { HeatMapLib HEATMAP_INSTANCE = Native.load(LibraryLoad.getLoadLibrary("HeatMap"), HeatMapLib.class); // Bmp位图信息 public static class BMPIMAGE_INFO extends SdkStructure { public Pointer pBuffer; // Bmp图片数据指针(不包含图片头) public int nWidth; // 图片宽度 public int nHeight; // 图片高度 public int nBitCount; // 图片位数,支持8位,24位,32位 public int nDirection; // 数据存储方向 0:从上到下,从左到右, 1:从下到上,从左到右 } // 输入数据信息 public static class HEATMAP_IMAGE_IN extends SdkStructure { public BMPIMAGE_INFO stuGrayBmpInfo; // 8位Bmp灰度热度图数据:不包含图片头,数据存储方向从上到下 public BMPIMAGE_INFO stuBkBmpInfo; // 背景图Bmp位图数据:包含图片头,存储方向从下到上 } // 输出数据信息 public static class HEATMAP_IMAGE_Out extends SdkStructure { public Pointer pBuffer; // 输出的彩色热度图数据(包含图片头),宽高、位数和背景图相同 public int nPicSize; // 图片内存大小(包含头) :宽*高*nBitCount/8 + 54 public float fOpacity; // 透明度,范围0-1 } /// \brief 生成热度图数据信息 /// param [in] stuBmpInfoIn Bmp位图数据输入 /// param [in] stuBmpInfoOut Bmp位图数据输出,包含图片头 /// param [out] true or false public boolean CreateHeatMap(HEATMAP_IMAGE_IN stuBmpInfoIn, HEATMAP_IMAGE_Out stuBmpInfoOut); /** * 将网络二进制数据转化成灰度数据 * * @param srcData 二进制数据 * @param width 宽 * @param height 高 * @param resultOut 灰度数据 * @return true or false */ public boolean TransNetDataToGrayData(Pointer srcData, int width, int height, Pointer resultOut); }