2022-07-19 03:51:00 +00:00
|
|
|
|
#ifndef __HGSCANNERLIB_H__
|
|
|
|
|
#define __HGSCANNERLIB_H__
|
|
|
|
|
|
|
|
|
|
#include "HGDef.h"
|
2022-07-27 07:56:10 +00:00
|
|
|
|
#include "HGScannerLibOption.h"
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
HG_DECLARE_HANDLE(HGLibImage);
|
|
|
|
|
HG_DECLARE_HANDLE(HGLibDevice);
|
|
|
|
|
|
|
|
|
|
/* TIFFѹ<46><D1B9><EFBFBD><EFBFBD>ʽ */
|
|
|
|
|
#define HGLIB_TIFFCOMPRESSION_NONE 1L
|
|
|
|
|
#define HGLIB_TIFFCOMPRESSION_CCITTFAX4 2L
|
|
|
|
|
#define HGLIB_TIFFCOMPRESSION_LZW 3L
|
|
|
|
|
#define HGLIB_TIFFCOMPRESSION_JPEG 4L
|
|
|
|
|
|
|
|
|
|
/* <20>豸<EFBFBD>Ȱβ<C8B0><CEB2>¼<EFBFBD> */
|
|
|
|
|
#define HGLIB_DEVHOTPLUG_EVENT_ARRIVE 1L
|
|
|
|
|
#define HGLIB_DEVHOTPLUG_EVENT_REMOVE 2L
|
|
|
|
|
|
|
|
|
|
/* <20>豸ɨ<E8B1B8><C9A8><EFBFBD>¼<EFBFBD> */
|
|
|
|
|
#define HGLIB_DEVSCAN_EVENT_BEGIN 1L
|
|
|
|
|
#define HGLIB_DEVSCAN_EVENT_END 2L
|
|
|
|
|
#define HGLIB_DEVSCAN_EVENT_INFO 3L
|
|
|
|
|
|
|
|
|
|
/* <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
|
|
|
|
#define HGLIB_DEVPARAM_TYPE_INT 1L
|
|
|
|
|
#define HGLIB_DEVPARAM_TYPE_STRING 2L
|
|
|
|
|
#define HGLIB_DEVPARAM_TYPE_DOUBLE 3L
|
|
|
|
|
#define HGLIB_DEVPARAM_TYPE_BOOL 4L
|
|
|
|
|
|
|
|
|
|
/* <20>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD>ȡֵ<C8A1><D6B5>Χ<EFBFBD><CEA7><EFBFBD><EFBFBD> */
|
2022-07-20 05:41:24 +00:00
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_NULL 0L
|
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_INTLIST 1L
|
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_STRINGLIST 2L
|
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLELIST 3L
|
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_INTRANGE 4L
|
|
|
|
|
#define HGLIB_DEVPARAM_RANGETYPE_DOUBLERANGE 5L
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGUInt size; /* <20>ṹ<EFBFBD><E1B9B9><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>Ϊsizeof(HGLibSaveImageParam) */
|
|
|
|
|
HGUInt jpegQuality; /* jpeg<65><67><EFBFBD><EFBFBD>Ч, 0-100 */
|
|
|
|
|
HGUInt tiffCompression; /* tiff<66><66><EFBFBD><EFBFBD>Ч, HGLIB_TIFFCOMPRESSION_* */
|
|
|
|
|
HGUInt tiffJpegQuality; /* tiff<66><66>HGLIB_TIFFCOMPRESSION_JPEG<45><47><EFBFBD><EFBFBD>Ч, 0-100 */
|
|
|
|
|
HGBool ocr; /* <20>Ƿ<EFBFBD>OCR<43><52>pdf<64><66>ofd<66><64>ʽ<EFBFBD><CABD>Ч */
|
|
|
|
|
}HGLibSaveImageParam;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGChar *title; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, UTF8 */
|
|
|
|
|
HGUInt type; /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20>μ<EFBFBD>HGLIB_DEVPARAM_TYPE_* */
|
|
|
|
|
union
|
|
|
|
|
{
|
|
|
|
|
HGInt intValue;
|
|
|
|
|
HGChar *stringValue;
|
|
|
|
|
HGDouble doubleValue;
|
|
|
|
|
HGBool boolValue;
|
|
|
|
|
};
|
|
|
|
|
}HGLibDeviceSetParam;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGInt* value;
|
|
|
|
|
HGUInt count;
|
|
|
|
|
}HGLibDeviceIntValueList;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGChar** value;
|
|
|
|
|
HGUInt count;
|
|
|
|
|
}HGLibDeviceStringValueList;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGDouble* value;
|
|
|
|
|
HGUInt count;
|
|
|
|
|
}HGLibDeviceDoubleValueList;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGInt minValue;
|
|
|
|
|
HGInt maxValue;
|
|
|
|
|
}HGLibDeviceIntValueRange;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGDouble minValue;
|
|
|
|
|
HGDouble maxValue;
|
|
|
|
|
}HGLibDeviceDoubleValueRange;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGLibDeviceSetParam param;
|
|
|
|
|
HGUInt rangeType; /* ȡֵ<C8A1><D6B5><EFBFBD><EFBFBD>, <20>μ<EFBFBD>HGLIB_DEVPARAM_RANGETYPE_* */
|
|
|
|
|
union
|
|
|
|
|
{
|
|
|
|
|
HGLibDeviceIntValueList intValueList;
|
|
|
|
|
HGLibDeviceStringValueList stringValueList;
|
|
|
|
|
HGLibDeviceDoubleValueList doubleValueList;
|
|
|
|
|
HGLibDeviceIntValueRange intValueRange;
|
|
|
|
|
HGLibDeviceDoubleValueRange doubleValueRange;
|
|
|
|
|
};
|
|
|
|
|
}HGLibDeviceGetParam;
|
|
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
|
{
|
|
|
|
|
HGChar* groupName;
|
|
|
|
|
HGLibDeviceGetParam* param;
|
|
|
|
|
HGUInt paramCount;
|
|
|
|
|
}HGLibDeviceGetParamGroup;
|
|
|
|
|
|
|
|
|
|
/* <20>豸<EFBFBD>Ȱβ<C8B0><CEB2>ص<EFBFBD>
|
|
|
|
|
* event: HGLIB_DEVHOTPLUG_EVENT_*
|
|
|
|
|
* deviceName: <EFBFBD>豸<EFBFBD><EFBFBD>
|
|
|
|
|
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
typedef void (*HGLibDeviceHotPlugEventFunc)(HGUInt event, const HGChar *deviceName, HGPointer param);
|
|
|
|
|
|
|
|
|
|
/* <20>豸ɨ<E8B1B8><C9A8><EFBFBD>¼<EFBFBD><C2BC>ص<EFBFBD>
|
|
|
|
|
* device: <EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* event: HGLIB_DEVSCAN_EVENT_*
|
|
|
|
|
* err: <EFBFBD>Ƿ<EFBFBD><EFBFBD>Ǵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ, HGLIB_DEVSCAN_EVENT_INFO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
* info: ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ, HGLIB_DEVSCAN_EVENT_INFO<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч
|
|
|
|
|
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
typedef void (*HGLibDeviceScanEventFunc)(HGLibDevice device, HGUInt event, HGBool err, const HGChar *info, HGPointer param);
|
|
|
|
|
|
|
|
|
|
/* <20>豸ɨ<E8B1B8><C9A8>ͼ<EFBFBD><CDBC><EFBFBD>ص<EFBFBD>
|
|
|
|
|
* device: <EFBFBD>豸<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
* image: ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>HGLib_ReleaseImage<EFBFBD>ͷ<EFBFBD>, <EFBFBD>ص<EFBFBD>ִ<EFBFBD>к<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><EFBFBD>ͷ<EFBFBD>
|
|
|
|
|
* param: <EFBFBD>ص<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
*/
|
|
|
|
|
typedef void (*HGLibDeviceScanImageFunc)(HGLibDevice device, HGLibImage image, HGPointer param);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> */
|
|
|
|
|
HGEXPORT HGLibImage HGAPI HGLib_LoadImage(const HGChar *filePath);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ͼ<EFBFBD><CDBC> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_SaveImage(HGLibImage image, const HGChar* savePath, const HGLibSaveImageParam* saveParam);
|
|
|
|
|
|
|
|
|
|
/* <20>ͷ<EFBFBD>ͼ<EFBFBD><CDBC> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_ReleaseImage(HGLibImage image);
|
|
|
|
|
|
|
|
|
|
/* <20><>ʼ<EFBFBD><CABC>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_InitDevice(HGLibDeviceHotPlugEventFunc func, HGPointer param);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_DeinitDevice();
|
|
|
|
|
|
|
|
|
|
/* <20><>ȡɨ<C8A1><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> */
|
2022-07-19 09:09:52 +00:00
|
|
|
|
HGEXPORT HGChar** HGAPI HGLib_GetDeviceNameList();
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD>ɨ<EFBFBD><C9A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceNameList(HGChar** deviceName);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸 */
|
|
|
|
|
HGEXPORT HGLibDevice HGAPI HGLib_OpenDevice(const HGChar *deviceName);
|
|
|
|
|
|
|
|
|
|
/* <20>ر<EFBFBD><D8B1>豸 */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_CloseDevice(HGLibDevice device);
|
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_SetDeviceParam(HGLibDevice device, const HGLibDeviceSetParam *param, HGUInt count);
|
2022-07-27 07:56:10 +00:00
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_SetDeviceParamEx(HGLibDevice device, const HGChar *option, const HGVoid *data);
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
/* <20><>ȡ<EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGLibDeviceGetParamGroup* HGAPI HGLib_GetDeviceParamGroupList(HGLibDevice device, HGUInt *count);
|
2022-07-27 07:56:10 +00:00
|
|
|
|
HGEXPORT HGLibDeviceGetParam* HGAPI HGLib_GetDeviceParam(HGLibDevice device, const HGChar* option);
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParamGroupList(HGLibDeviceGetParamGroup* paramGroup, HGUInt count);
|
2022-07-27 07:56:10 +00:00
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_ReleaseDeviceParam(HGLibDeviceGetParam* param);
|
2022-07-19 03:51:00 +00:00
|
|
|
|
|
|
|
|
|
/* <20><><EFBFBD><EFBFBD><EFBFBD>豸<EFBFBD><E8B1B8><EFBFBD><EFBFBD> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_ResetDeviceParam(HGLibDevice device);
|
|
|
|
|
|
|
|
|
|
/* <20><>ʼɨ<CABC><C9A8> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_StartDeviceScan(HGLibDevice device, HGLibDeviceScanEventFunc eventFunc, HGPointer eventParam,
|
|
|
|
|
HGLibDeviceScanImageFunc imageFunc, HGPointer imageParam);
|
|
|
|
|
|
|
|
|
|
/* ֹͣɨ<D6B9><C9A8> */
|
|
|
|
|
HGEXPORT HGBool HGAPI HGLib_StopDeviceScan(HGLibDevice device);
|
|
|
|
|
|
|
|
|
|
#endif /* __HGSCANNERLIB_H__ */
|