紫光高拍仪C5422二次嵌入开发

1.客户端请安装紫图高拍仪驱动,并注册OCX(注册;方法:双击C:\ProgramFiles\CmCaptureOcx\OCX目录_Install.bat文件)

安装的时候要用管理员打开  不然部分机器可能会报错   也有部分可能会报毒关闭杀毒软件

2、初次使用高拍仪,请先在机器D盘创建test文件夹,用于保存拍摄图片。

3、拍摄页面,如果未显示视频框,请把浏览器改为兼容模式。(可能年代太久了)

4、拍摄之前,请先单击开始视频按钮。

API List

编号

函数名

参数含义

返回值含义

函数功能

01

HelloWorld

测试函数  无任何意义

02

AutoCrop

是否开启自动裁切

是否成功开启功能

自动裁切纠偏

03

AutoFocus

返回值始终是1

无意义

开启自动对焦线程

04

CaptureImage

图像文件名(包含文件存储路径)

见函数详解

拍图

05

CusCrop

是否开启手动裁切

是否开启功能

手动裁切

06

DeleteFile

删除文件的文件名

是否成功删除

删除文件

07

Destory

返回值始终为TRUE,无意义

注销视频流

08

EndVideo

结束录像功能

09

GetCurResolutionIndex

当前分辨率编号

获取当前分辨率编号

10

GetDevCount

设备数量

获取设备数量

11

GetDevFriendName

设备编号

设备名称

获取设备名称

12

GetResolution

分辨率编号

当前编号代表的分辨率(xxxx*xxxx形式)

获取编号代表的分辨率

13

GetResolutionCount

当前设备支持的分辨率个数

获取分辨率个数

14

GetSerImgFileCount

连拍的图片张数

获取连拍图片数量

15

GetSerImgFileNameAt

自动连拍的第几张图片

文件名(包含路径)

获取连拍图片的名称

16

Initial

是否成功初始化

初始化ocx

17

PreviewFile

预览图片文件的文件名(包含路径)

是否成功预览

文件预览

18

ReadBarCode

是否开启条码识别功能

是否成功开启功能

条码识别

19

RotateVideo

旋转角度0 :0°1:90°2:180°3:270°

始终为True

旋转视频

20

SeriesCapture

参数一:是否开启连续拍摄

参数二:拍摄的图片存储位置

返回值始终是1

无意义

开启自动检测连拍功能

21

SetDenoise

是否开启去噪点功能

是否成功开启功能

去噪点

22

SetFileType

文件格式编号0、bmp;1、jpg;2、tif;3、png;4、gif

是否成功设置

设置文件格式

23

SetImageColorMode

图片颜色格式0彩色1灰度2黑白

是否成功设置图片格式

设置图片格式

24

SetJpgQuanlity

Jpg图像压缩率。1压缩率最大,图像质量最差;100压缩率最小,图片质量最好

是否成功设置图片质量(仅限于Jpg格式)

压缩Jpg格式文件

编号

函数名

参数含义

返回值含义

函数功能

25

SetResolution

分辨率编号

是否成功设置分辨率

设置分辨率

26

ShowImageSettingWindow

是否成功调用

调用图像设置窗口

27

StartRun

设备编号

是否成功开启视频

开启视频

28

StartVideo

参数一:视频文件存储路径;

参数二:是否开启音频。

是否成功开始录像

开启录像功能

29

UpdataFile

参数一:url路径;

参数二:上传的文件名(包含路径);

参数三:上传后是否删除本地文件

是否成功上传

文件上传功能

30

ZoomIn

始终为True

放大

31

ZoomOut

始终为True

缩小

32

CaptureToBase64

Base64编码后的数据

获取Base64编码的图像

33

CaptureToBinary

参数一:图像二进制数据;参数二:图像宽度;参数三:图像高度;参数四:每行字节数

始终为TRUE,无意义

获取图像二进制信息

34

SetBrightness

亮度值

若无视频流返回值为0,否则返回值始终为1

设置亮度

35

SetExposure

曝光度

若无视频流返回值为0,否则返回值为1

设置曝光度

36

AutoExposure

是否开启自动曝光

若无视频流返回值为0,否则返回值为1

开启自动曝光

37

GetBrightnessRange

返回当前设备的亮度值范围(格式为XX|XX)

获取亮度值范围

38

GetExposureRange

返回当前设备的曝光度值范围(格式为XX|XX)

获取曝光度值范围

39

FrozenVideo

是否冻结视频

是否成功

冻结视频

40

StartRunEx

参数一:设备编号;

参数二:分辨率宽度;

参数三:分辨率高度;

参数四:开启模式

是否成功

开启视频

41

SetImageDPI

DPI值

设置DPI

42

TimimgCapture

参数一:是否开启功能;

参数二:文件存储路径;

参数三:拍摄间隔时间

是否成功

定时连拍

43

Convert2PDF

合并到PDF

合并到PDF

44

AddPDFImageFile

文件名

始终为true。

添加到Pdf的文件名称

编号

函数名

参数含义

返回值含义

函数功能

45

DragVideo

是否开启拖拽视频

拖拽视频

46

SetMarkPic

水印图片文件名(包含路径)

设置图片水印

47

GetPreviewImg

参数一:图像二进制数据;

参数二:图像宽度;

参数三:图像高度;

参数四:每行字节数

获取预览图像二进制数据

48

SetPaperType

纸张类型1:A4 2:A5 3:A8

若无视频流,返回false,否则返回True

设置拍摄纸张格式

50

TrueSize

切换到真实大小

51

BestSize

切换到最适应大小

52

GetDevDisplayName

设备编号

设备的DisplayName

获取设备DisplayName

53

CaptureBinaryImg

CaptureToBinary的进阶形式,添加一个获取Bpp的参数

54

GetFileNameOnDirectory

文件索引号

文件名

通过索引号获取某个文件夹的文件名,需要与函数55联合使用

55

GetDirectoryFileCount

文件夹名(包含路径)

文件夹中图像文件的个数

获取文件夹中的图像文件个数

56

CaptureImageEx

文件名(不包含路径)

文件名(包含路径)

无路径拍图

57

SetCurrentDevDPI

参数1:X方向DPI;

参数2:Y方向DPI

设置当前设备的DPI

58

SetMarkString

参数1:文字旋转角度;

参数2:文字大小;

参数3:水印文字

设置水印文字

59

SetTimeMark

参数1:时间字符串

参数2:文字大小

设置时间水印

60

GetLastImageInfoEx

参数1:图片长;

参数2:图片宽;

参数3:图片深度

无意义

获取图片信息

61

GetLastImageInfo

图片大小

获取图片大小

62

UploadFile

参数1:上传文件名;

参数2:上传后是否删除本地;

参数3:ftp地址

参数4:Ftp用户名

参数5:ftp密码

参数6:Ftp子文件夹

上传状态

上传文件(FTP)

63

SetMarkStringEx

参数1:水印文字角度;

参数2:文字大小;

参数3:水印文字

参数4:颜色

参数5:字体

参数6:x偏移

参数7:y偏移

参数8:版式(横排/竖排)

始终为1,无意义

设置水印文字

64

CombineTwoImage

参数1:合并后图像的全路径

参数2:合并图像1的全路径

参数3:合并图像2的全路径

参数4:合并模式 1垂直合并 2水平合并

合并结果

合并两张图像

66

AddFileToZip

参数1:需要合并的文件路径

是否添加成功

添加文件到zip压缩文件列表

67

Convert2Zip

参数1:生成文件路径

是否合并成功

将文件打包成zip包

68

GetDevSN

参数 1:设备的索引

返回SN码的字符串

获取设备的SN码

69

ShowDevSettingWindow

成功返回1 否则返回0

获取设置视频属性的接口

70

Base64Encode

参数 1:将被编码文件的路径

返回编码后的文件

Base64编码

71

Base64Decode

参数1 将被解码的文件

参数 2 解码后文件的保存路径

成功回1 失败返回0

Base64 解码

72

OpenAutomaticExposure

参数 1:是否打开智能曝光

打开智能曝光(根据裁切位置曝光)

73

SetCropMode

参数 1:True为单图裁切 fale为多图裁切

设置裁切模式

74

GetCodeString

如果条码识别成功返回条码数据否则返回空

获取条码数据

75

SetVideoParameter

参数1:将要设置的类型

参数2:类型 为0 或1

参数3:设置的值

参数4:

True表示成功,false表示失败

设置视频参数

76

AddFileToTiff

参数 1:图片的路径

1表示成功

0表示失败

添加图片的路径

77

ConvertToTiff

参数1:Tiff的存储路径

参数 2:合并模式

1表示成功

0表示失败

保存Tiff图

78

SetExposureLock

参数1:是否锁定曝光

0表示不设置

1表示设置

锁定曝光

79

SetDocumentTemplet

参数:需要裁切区域

设置文档模板

80

StartRunEx2

参数:视频开启的参数

开启视频

81

GetVideoParameter

参数:设备UVC参数指针

获取UVC参数

82

CreateFile

参数1:将要创建文件的路径

0表示成功

1表示失败

2文件夹已存在

创建指定路径的文件夹

函数详解

A

LONG AddPDFImageFile(BSTR imagefile)

参    数:参数1:BSTR型 需要合并的图片名称;

返 回 值:始终为TRUE,无意义

函数功能:添加要合成PDF到的文件。

LONG AddFileToTiff(BSTR imagefile)

参    数:参数1:BSTR型 需要合并的图片名称;

返 回 值:始终为TRUE,无意义

函数功能:添加要合成TIFF到的文件。

LONG AddFileToZip(BSTR FileName)

参数: 参数1:BSTR型 需要合并的图片名称;

返 回 值:始终为TRUE,无意义

函数功能:添加文件到zip压缩文件列表

LONG AutoCrop(BOOL AdjustSkew);

参    数:BOOL型  true:开启自动裁切,False:关闭自动裁切

返 回 值:LONG型  是否设置成功 (0 失败 1 成功)

函数功能:自动裁切纠偏

LONG AutoExposure(BOOL bExp); 

参    数: BOOL型  自动曝光(TRUE 开启 FALSE 关闭)

返 回 值:若无视频流返回值为0,否则返回值始终为1

函数功能: 设置自动曝光

LONG AutoFocus()

参    数:无

返 回 值:始终为 1

函数功能:开启自动对焦线程,对焦稳定后,线程结束 

LONG AdjustExposure();

参    数:无

返 回 值:如调整曝光成功,返回1,否则返回0;

函数功能:调整曝光 

B

void BestSize();

参    数:无

返 回 值:无

函数功能:最适应尺寸显示 

BSTR Base64Encode(BSTR strFileName);

参    数:将被编码文件的地址

返 回 值:被编码后的文件

函数功能:将文件进行base64编码 

LONG Base64Decode(BSTR strFileDecode,BSTR strFileSaveFileName);

参    数:strFileDecode 被解码的文件

          strFileSaveFileName 解码后文件的保存路径

返 回 值:0 为失败  1 为成功 

函数功能:将文件进行base64解码 

C

LONG CaptureBinaryImg(BYTE *lpBuf,LONG *Width,LONG *Height,LONG *nLine,LONG *bpp);

参    数:参数1:BYTE*型 图像二进制数据;参数2:LONG*型 图像宽度;参数3:LONG*型图像高度;参数四:LONG*型 每行字节数;参数五:LONG*型 位深度

返 回 值:始终为1,无意义

函数功能:获取图像二进制信息

函数功能:拍图

LONG CaptureImage(LPCTSTR FileName); 

参    数:字符串  文件存储名称(包含存储路径

返 回 值:LONG型  1:拍图成功 0:未找到图片 -1:视频流为空 -2:文件名为空 -3:无图像 -4:存图失败

函数功能:拍图

BSTR CaptureImageEx(BSTR FileName);

参    数:字符串  文件存储名称(不包含存储路径

返 回 值:BSTR型  文件完整路径。

函数功能:拍图

BSTR CaptureToBase64()

参    数:无

返 回 值:BSTR型  Base64编码后的数据

函数功能:获取Base64编码的图像

LONG CaptureToBinary(BYTE *lpBuf,LONG *Width,LONG *Height,LONG *nLine)

参    数:参数1:BYTE*型 图像二进制数据;参数2:LONG*型 图像宽度;参数3:LONG*型图像高度;参数四:LONG*型 每行字节数

返 回 值:始终为1,无意义

函数功能:获取图像二进制信息

void Convert2PDF(BSTR strNew, INT mode);

参    数:参数一:BSTR型  合并完成的Pdf文件名称(包含路径);参数二:INT型 合并模式 0: 将AddPDFImageFile中添加的文件合并成PDF  1:选取图像合并;

返 回 值:无

函数功能:合并PDF

void ConvertToTiff(BSTR strNew, INT mode);

参    数:参数一:BSTR型  合并完成的Diff文件名称(包含路径);参数二:INT型 合并模式 0: 将AddTiffImageFile中添加的文件合并成Tiff 1:选取图像合并;

返 回 值:无

函数功能:合并TIff

LONG Convert2Zip(BSTR strNew)

参    数:参数一:生成文件名称;

返 回 值:是否压缩成功

函数功能:将文件打包成zip包,同时在zip包内添加一个fileInfo.xml文件,文件格式为

<fileList> <file fileSize="3021546" fileName="IMG_0014.jpg"/> </fileList>

LONG CombineTwoImage(BSTR imageFileName,BSTR imageFileName1,BSTR imageFileName2,LONG type);

参   数:参数一:BSTR型  合并完成的图像全路径;参数二:BSTR型  需要合并的图像1全路径;参数三:BSTR型  需要合并的图像2全路径;参数四 LONG 型 合并模式 1:水平合并 2 垂直合并;

返回值:-2:图像1和图像2的颜色格式不同,无合并;-1:图像1或图像2无法以图片形式打开,无法合并;0:参数有误1.合并成功

函数功能:合并图像

LONG CusCrop(BOOL CusCrop);

参    数:BOOL型  true:开启手动裁切,False:关闭手动裁切

返 回 值:LONG型  是否设置成功(0失败 1成功)

函数功能:手动裁切

D

LONG DeleteFile(LPCTSTR FileName);

参    数:字符串  要删除的文件名称(包含路径

返 回 值:LONG型  是否成功删除(0失败  1成功)

函数功能:删除文件

LONG Destory();

参    数:无

返 回 值:LONG型  始终为1,无意义

函数功能:注销视频流

LONG DigitalSignature(BOOL sign); 

参    数:是否开启数字签名

返 回 值:LONG型  始终为1,无意义

函数功能:开启数字签名功能

         PS:重要!!  开启数字签名后,拍照时会同时生成一个后缀名为.Scrt的验证文件,若此文件被损坏或丢失,则无法验证图片是否被修改。

void DragVideo(BOOL Drag)

参    数: BOOL型  是否开启视频拖拽

返 回 值: 无

函数功能: 拖拽视频

E

void EndVideo ();

参    数:无

返 回 值:无

函数功能:结束视频录制

F

LONG FrozenVideo(BOOL bFrozen); 

参    数: BOOL型  冻结视频(TRUE 冻结 FALSE 不冻结)

返 回 值: LONG型  是否成功冻结(0失败  1成功)

函数功能: 冻结视频

G

BSTR GetBrightnessRange();

参    数: 无

返 回 值: BSTR型  设备的亮度值范围(格式 “XX|XX”)

函数功能: 获取设备亮度范围

BSTR GetCodeString();

参    数: 无

返 回 值: 条码数据,如果失败则为空字符串

函数功能: 获取条码识别的数据

LONG GetCurResolutionIndex();

参    数:无

返 回 值:LONG型  当前分辨率编号

函数功能:获取当前分辨率编号

LONG GetDevCount();

参    数:无

返 回 值:LONG型  当前设备数量

函数功能:获取当前设备数量

BSTR GetDevDisplayName(LONG index);

参    数:设备编号

返 回 值:BSTR型  当前设备DisPlay Name

函数功能:获取当前设备displayname

BSTR GetDevFriendName(LONG index); 

参    数:LONG型  设备编号

返 回 值:字符串  当前设备名称

函数功能:获取设备名称

LONG GetDirectoryFileCount(BSTR strDirPath);

参  数:BSTR型 文件夹路径

返回值:LONG型 图片数量

功  能:获取StrDirPath文件夹下图片文件的个数。

BSTR GetExposureRange();

参    数:无

返 回 值:BSTR型  设备的曝光度值范围(格式 “XX|XX”)

函数功能:获取设备曝光度范围

BSTR GetFileNameOnDirectory(LONG index);

参    数:LONG型 索引号

返 回 值:BSTR型  文件名称

函数功能:获取索引号所代表的的文件名称

LONG GetLastImageInfo(BSTR FileName); 

参    数:BSTR型 文件名

返 回 值:Long型  文件大小

函数功能:获取文件大小

LONG GetLastImageInfoEx(LONG *Width,LONG *Height,LONG *bpp); 

参    数:1: 文件宽  2:文件高  3:文件位深度。

返 回 值:Long型  无意义

函数功能:获取文件信息

void GetPreviewImg(BYTE *lpBuf,LONG *Width,LONG *Height,LONG *nLine);

参    数:参数1:BYTE*型 图像二进制数据;参数2:LONG*型 图像宽度;参数3:LONG*型图像高度;参数四:LONG*型 每行字节数

返 回 值:无

函数功能:获取预览图像的二进制信息

BSTR GetResolution(LONG index); 

参    数:LONG型  分辨率编号

返 回 值:字符串  获取当前分辨率编号所代表的分辨率,返回字符串的格式为“xxxx*xxxx”

函数功能:获取当前编号的分辨率

LONG GetResolutionCount();

参    数:无

返 回 值:LONG型  当前设备所支持的分辨率个数

函数功能:获取当前设备所支持的分辨率个数

LONG GetSerImgFileCount();

参    数:无

返 回 值:自动连拍图片的数量

函数功能:获取自动连拍获得的图片数量

BSTR GetSerImgFileNameAt(LONG Index);

参    数:LONG型  进行自动连拍时所拍摄的第Index张图片

返 回 值:字符串  图片的文件名称(包含路径

函数功能:获取自动连拍所拍摄第Index张图片的文件名称

BSTR GetDevSN(LONG index)

参    数:参数1:设备的索引号

返 回 值:返回设备的SN码

函数功能:获取设备的SN码

BOOL GetVideoParameter(int para1,int para2,LONG * min,LONG * max,LONG *lvalue,LONG *ldefault,LONG *flag);

参    数:参数1:将要设置值得类型;

参数2:0或1

当 para2 为0 时 para1的值

{VideoProcAmp_Brightness = 0,

    VideoProcAmp_Contrast   = VideoProcAmp_Brightness + 1,

    VideoProcAmp_Hue    = VideoProcAmp_Contrast + 1,

    VideoProcAmp_Saturation = VideoProcAmp_Hue + 1,

    VideoProcAmp_Sharpness  = VideoProcAmp_Saturation + 1,

    VideoProcAmp_Gamma  = VideoProcAmp_Sharpness + 1,

    VideoProcAmp_ColorEnable    = VideoProcAmp_Gamma + 1,

    VideoProcAmp_WhiteBalance   = VideoProcAmp_ColorEnable + 1,

    VideoProcAmp_BacklightCompensation  = VideoProcAmp_WhiteBalance + 1,

VideoProcAmp_Gain   = VideoProcAmp_BacklightCompensation + 1

}

 当 para2 为1 时 para1的值

    { CameraControl_Pan = 0,

CameraControl_Tilt = ( CameraControl_Pan + 1 ) ,

CameraControl_Roll = ( CameraControl_Tilt + 1 ) ,

CameraControl_Zoom = ( CameraControl_Roll + 1 ) ,

CameraControl_Exposure = ( CameraControl_Zoom + 1 ) ,

CameraControl_Iris = ( CameraControl_Exposure + 1 ) ,

CameraControl_Focus = ( CameraControl_Iris + 1 )

}

Min:最小值

Max:最大值

Lvalue:当前值

Ldefault:默认值

Flag:自动或手动

返回值:是否获取成功

函数说明:获取UVC参数

I

LONG Initial();

参    数:无

返 回 值:LONG型  -2:无设备;   -1:无授权设备;  0 – N:有授权设备且授权设备ID为N;

函数功能:初始化ocx

O

void OpenAutomaticExposure(BOOL bIsOpenAE);

参    数:true为打开智能曝光,false为关闭智能曝光

返 回 值:无

函数功能:打开智能曝光 

P

LONG PreviewFile(LPCTSTR FileName);

参    数:字符串  预览文件的文件名(包含路径

返 回 值:LONG型  是否成功预览(0失败 1成功)

函数功能:文件预览

R

LONG ReadBarCode(BOOL m_bBarCode);

参    数:BOOL型  true:开启条码识别  False:关闭条码识别

返 回 值:LONG型  是否成功开启功能

函数功能:条码识别

LONG RotateVideo(LONG RotIndex); 

参    数: LONG型 旋转角度 0 :0°1:90°2:180°3:270°

返 回 值: LONG型  始终为1 无意义

函数功能: 旋转视频

S

void SetExposureLock(BOOL bIsLock)

参    数:  True表示拍图后锁定曝光,false拍图后不锁定曝光 

返 回 值:无

函数功能:是否锁定曝光

void SetCropMode(BOOL bCropMode);

参    数:裁切模式  True表示单图裁切,fale为多图裁切 

返 回 值:无

函数功能:设置裁切模式

BOOL SetVideoParameter(int para1,int para2,long lvalue,long flag);

参    数:参数1:将要设置值得类型;

参数2:0或1

当 para2 为0 时 para1的值

{VideoProcAmp_Brightness = 0,

    VideoProcAmp_Contrast   = VideoProcAmp_Brightness + 1,

    VideoProcAmp_Hue    = VideoProcAmp_Contrast + 1,

    VideoProcAmp_Saturation = VideoProcAmp_Hue + 1,

    VideoProcAmp_Sharpness  = VideoProcAmp_Saturation + 1,

    VideoProcAmp_Gamma  = VideoProcAmp_Sharpness + 1,

    VideoProcAmp_ColorEnable    = VideoProcAmp_Gamma + 1,

    VideoProcAmp_WhiteBalance   = VideoProcAmp_ColorEnable + 1,

    VideoProcAmp_BacklightCompensation  = VideoProcAmp_WhiteBalance + 1,

VideoProcAmp_Gain   = VideoProcAmp_BacklightCompensation + 1

}

 当 para2 为1 时 para1的值

    { CameraControl_Pan = 0,

CameraControl_Tilt = ( CameraControl_Pan + 1 ) ,

CameraControl_Roll = ( CameraControl_Tilt + 1 ) ,

CameraControl_Zoom = ( CameraControl_Roll + 1 ) ,

CameraControl_Exposure = ( CameraControl_Zoom + 1 ) ,

CameraControl_Iris = ( CameraControl_Exposure + 1 ) ,

CameraControl_Focus = ( CameraControl_Iris + 1 )

    }

                参数3:将要设置的值

                参数4:1自动 0手动

返 回 值:始终为1,无意义

函数功能:设置UVC参数

LONG SeriesCapture(BOOL SerCapture,LPCTSTR FolderPath)

参    数:参数1:BOOL型  是否开启自动检测拍照;

参数2:字符串  存储图片位置,格式:D:\XXXX\(XXXX为文件夹名称,字符串需要以“\”结尾,否则无法正常存储。

返 回 值:始终为1,无意义

函数功能:开启自动连拍功能

LONG SetBrightness(LONG BriNum);

参    数: LONG型  亮度值

返 回 值: 若无视频流返回值为0,否则返回值始终为1

函数功能: 设置亮度

LONG SetCurrentDevDPI(float xdpi,float ydpi); 

参    数: float型   x、y方向上的DPI;

返 回 值: LONG型 若无视频流返回值为0,否则返回值始终为1

函数功能: 设置设备原始DPI

LONG SetDenoise(BOOL Denoise);

参    数:BOOL型  True:开启去噪点功能  False:关闭去噪点功能

返 回 值:LONG型  是否成功开启功能(0失败 1成功)

函数功能:去噪点

void SetDocumentTemplet(float left,float right,float top,float bottom);

     参数:float型 需要裁切的区域即文档模板,在获取文档图片后再次裁切区域,单位百分比

LONG SetExposure(LONG ExpNum); 

参    数: LONG型  曝光度值

返 回 值:若无视频流返回值为0,否则返回值始终为1

函数功能:设置曝光度

LONG SetFileType(LONG index);

参    数:LONG型  文件类型编号   0:bmp 1:jpg 2:tif 3:png 4:Gif

返 回 值:LONG型  是否成功设置(0失败 1成功)

函数功能:设置文件存储格式

LONG SetImageColorMode(LONG index);

参    数:LONG型  色彩类型编号 0:彩色  1:灰度  2:黑白  

返 回 值:LONG型  是否成功设置色彩类型(0失败 1成功)

函数功能:设置色彩类型

void SetImageDPI(int ndpi);

参    数: int型 设置dpi

返 回 值: 无

函数功能: 设置DPI

LONG SetJpgQuanlity(LONG QuaNum);

参    数: LONG型 图片质量 1最小  100最大

返 回 值: 是否成功设置

函数功能: 设置图片质量(仅限于Jpg图像

void  SetMarkPic(BSTR FilePath)

参    数: 水印图片名称(包含路径)

返 回 值: 无

函数功能: 设置水印图片

void  SetMarkStringEx(LONG Angel,LONG size, BSTR String,DWORD color,LONG FontIndex,LONG X,LONG Y,LONG Mode) 

参    数: LONG型  角度(取值范围-180~181,取181时代表倾斜度为对角线角度)

           LONG型  字体大小

           BSTR 型 水印文字

           DWORD型 颜色

           LONG型 字体

           LONG型 x轴偏移

           LONG型 y轴偏移

           LONG型 排版格式

返 回 值: 始终为1,无意义

函数功能: 设置水印文字

void  SetMarkString(LONG Angel,LONG size,BSTR String) 

参    数: LONG型  角度(取值范围-180~181,取181时代表倾斜度为对角线角度)

           LONG型  字体大小  单位为像素。

返 回 值: 始终为1,无意义

函数功能: 设置水印文字

LONG SetPaperType(LONG type);

参    数:LONG型  纸张类型编号 1:A4  2:A5  3:A8

返 回 值:LONG型  是否成功设置分辨率(0失败 1成功)

函数功能:设置拍摄纸张格式

LONG SetResolution(LONG index);

参    数:LONG型  分辨率编号

返 回 值:LONG型  是否成功设置分辨率(0失败 1成功)

函数功能:设置分辨率(初始化使用,不能用于更改分辨率

LONG SetTimeMark(BSTR Time,LONG size);

参    数:BSTR型  时间字符串,若传入的字符串为空,则自动使用当前系统时间

          LONG型  字体大小,以像素为单位。

返 回 值:LONG型  是否成功设置分辨率(0失败 1成功)

函数功能:设置分辨率(初始化使用,不能用于更改分辨率

LONG ShowImageSettingWindow();

参    数:无

返 回 值:LONG型  是否成功调用图片设置窗口(0失败 1成功)

函数功能:调用图片设置窗口。

LONG StartRun(LONG Index);

参    数:LONG型  设备编号

返 回 值:LONG型  是否成功开启视频(0失败 1成功)

函数功能:开启视频

LONG StartRunEx(LONG DevIndex,LONG ResWidth,LONG ResHeight,LONG RunMode); 

参    数: 参数1:LONG型 设备编号    参数2:LONG型 宽度    参数3:LONG型 高度  

参数4:开启模式(0:用户设定分辨率;1:默认分辨率;2:最大分辨率)

PS:参数四的值为1或者2时,参数2、参数3无意义。

返 回 值: LONG型  是否成功开启视频(0失败 1成功) 

函数功能: 开启视频

LONG StartRunEx2(LONG DevIndex,LONG ResWidth,LONG ResHeight,LONG RunMode,LONG VideoMode,LONG CaptureMode); 

参    数: 参数1:LONG型 设备编号    参数2:LONG型 宽度    参数3:LONG型 高度  

参数4:开启模式(0:用户设定分辨率;1:默认分辨率;2:最大分辨率)

PS:参数四的值为1或者2时,参数2、参数3无意义。

参数5:开始视频格式 0 YUY2 1 MJPG

参数6:拍摄模式

返 回 值: LONG型  是否成功开启视频(0失败 1成功) 

函数功能: 开启视频

LONG StartVideo (LPCTSTR lspFilePath,BOOL m_bAudio);

参    数:参数一:字符串  视频文件名称(包含路径) 参数二:true/false开启/关闭音频

返 回 值:LONG型  是否成功开启视频录像(0失败 1成功)

函数功能:开启视频录像功能

T

LONG TimimgCapture(BOOL bTimeCap,BSTR FilePath,int IntevialTime);

参    数: 参数一:BOOL型 是否开启功能 参数二:BSTR型  文件名(包含路径,以“\”结尾)参数三:int型 间隔时间

返 回 值: LONG型  是否成功(0失败 1成功)

函数功能: 定时拍摄

void TrueSize();

参    数:无

返 回 值:无

函数功能:真实尺寸显示。

U

LONG UpdataFile(LPCTSTR pUrl,LPCTSTR pFilename,BOOL m_bDelete); 

参    数:参数一:字符串  URL地址  参数二:文件名(包含路径)参数三 true:上传后删除

本地文件

返 回 值:是否成功上传(0失败 1成功)

函数功能:文件上传

UploadFile(BSTR FilePath,BOOL bFileDelete,BSTR FtpAdd,BSTR UserName,BSTR UserPsd,BSTR TargetName);

参    数:参数一:字符串  文件名(包含路径)  参数二:BOOL型 上传后是否删除本地 参数三 Ftp地址 参数四: Ftp用户名  参数五 :ftp密码 参数6:ftp上子文件夹名称

返 回 值:0成功 -1上传失败 -2登陆服务器根路径失败 -3 创建子文件夹失败 -4 断开连接失败 -5 连接失败;

函数功能:文件上传

Z

LONG ZoomIn();

参    数:无

返 回 值:LONG型  始终为1  无意义

函数功能:视频放大 

LONG ZoomOut();

参    数: 无

返 回 值: LONG型  始终为1  无意义

函数功能: 视频缩小

LONG CreateFile(LPCTSTR lpszFilePath);

参    数:字符串  将要创建文件的路径

返 回 值:LONG型  是否成功预览(0功能 1失败 2文件夹已存在)

函数功能:创建文件夹

使用例程

开始视频

int i = m_ocx.Initial(); //初始化

if(i = -2)

{

AfxMessageBox(L” 无设备”)

return false;

}

m_ocx.StartRun(0);  //开启视频

拍摄图像

m_ocx.SetImageColorMode(1); //设置颜色模式

m_ocx.SetJpgQuanlity(10); //设置图像质量(若为BMP图像则不需要此步骤)

m_ocx.CaptureImage(L"d:\\cof.jpg"); //拍摄图片

Ps:   CaptureImage()函数的参数为文件的绝对路径。

分辨率控制

列举分辨率

CString strTemp;

long width;

long height;

for (int i = 0; i < m_ocx.GetResolutionCount();i ++ )

{

m_ocx.GetResolution(i,&width,&height);

strTemp.Format(L"%d*%d",width,height);

MessageBox(strTemp);

}

获取当前分辨率

Caution:分辨率的获取须在 StartRun()之后

long width;

long height;

int i = m_ocx.GetResolutionIndex();

m_ocx.GetResolution(i,&width,&height);

设置分辨率

m_ocx.SetResolution(Index);

手动裁切

m_ocx.SetCropArea(TRUE);

读取条形码

m_ocx.ReadBarCode(TRUE);

CString strCode = m_ocx. GetCodeString();

注:读取条形码式采用2592*1944分辨率拍照,此时ocx会将条形码区域拍摄下来并以条码内容作为文件名进行存储。若未成功读取出条码内容,则不会存储图片。

获取图像二进制数据

BYTE* m_src = NULL;

long width,height,effectwidth;

width = height = effectwidth = 0;

m_ocx.CaptureToBinary(m_src,&width,&height,&effectwidth); 

m_src = new BYTE[effectwidth * height];

m_ocx.CaptureToBinary(m_src,&width,&height,&effectwidth);

获取某个文件夹中的所有图片文件

int index = m_ocx.GetDirectoryFileCount(L"D:\\ImageFile\\")

for(int i= 0; i < index; i++)

{

CString str;

str = m_ocx.GetFileNameOnDirectory(i);                            

}

CaptureImageEx

CaptureImage的进阶形式,传入参数不再需要路径,文件直接存储于系统temp文件夹下,返回值为带路径的文件名。

EG:

CString FilePath = m_ocx.CaptureImageEx(L”MyImage.bmp”);

返回值为c:\user\XXXXX\AppData\local\temp\MyImage.bmp;

SetMarkStringEx

水印文字颜色设置方式:

DWORD colorRef = RGB(255,0,255);

水印文字字体代号:

0 宋体 , 1 Arial , 2 黑体, 3  Times New Roman, 4 华文彩云

水印文字偏移

百分比偏移 取值0 – 100;

以图片左上与文字左上为两个基准点

排版格式

0 横排 1 竖排

添加图片水印说明:

  1. 在配置文件中设置图片水印的位置(值为1,2,3,4,5,配置文件在SDK安装目录的cfg下)

1 --表示左上

2—表示右上

3—表示右下

4—表示左下

5--表示中间

如果需要添加图片水印,在调用Initial()之后,

调用SetMarkPic(L”C:\\1.jpg”); 设置水印图片的路径

调用条码识别额

  1. 调用函数ReadBarCode(TRUE),参数设为TRUE
  2. 拍照CaptureImage();
  3. 调用GetCodeString的返回值就是条码识别的结果

获取右键消息

<SCRIPT type="text/javascript"  for="CmCaptureOcx"  event="GetRButtonDownPoint(x,y);">

alert(x);

</SCRIPT>

获取拍摄图片消息

<SCRIPT type="text/javascript"  for="CmCaptureOcx"  event="GetImageFileName(FileName);">

alert(FileName);

</SCRIPT>

获取停止自动连拍消息

<SCRIPT type="text/javascript"  for="CmCaptureOcx"  event="FinishSeriesCapture();">

</SCRIPT>

DEMO代码

<html>

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
        <title>SDK 演示</title>
<Script language="javascript">
var nFileCount = 0;
var bAdjustMode = 0;
var bCropArea = 0;
var bSeriesCapture = 0;
var bReadBarCode=0;
var bSetDenoise = 0;
var Width = 0;
var Height = 0;
var strFile;
var index = 0;
var strCardFile;
var cardIndex = 0;
function Capture()
{
    var obj=document.getElementById("FileType") ;
    var index=obj.selectedIndex;
    strFile = "d:\\test\\Img" + nFileCount;
    if(index == 0)
    {
        strFile += ".bmp";
    }
    if(index == 1)
    {
        strFile += ".jpg";
    }
    if(index == 2)
    {
        strFile += ".tif";
    }
    if(index == 3)
    {
        strFile += ".png";
    }
    CmCaptureOcx.CaptureImage(strFile);
    nFileCount ++;
}
function Adjust()
{
    if(bAdjustMode == 0)
    {
        CmCaptureOcx.AutoCrop(1);
        bAdjustMode = 1;
    }
    else
    {
        CmCaptureOcx.AutoCrop(0);
        bAdjustMode = 0;
    }
}
function SetCropArea()
{
    if(bCropArea == 0)
    {    
        bCropArea = 1;
        CmCaptureOcx.CusCrop(bCropArea);
    }
    else
    {
        bCropArea = 0;
        CmCaptureOcx.CusCrop(bCropArea);
    }
}
function UpdataFile()
{
    //var Url = document.getElementById("URL").value;
    var Url = "http://192.168.1.123:8080/UploadTestApp/uploadfile.do";
    CmCaptureOcx.UpdataFile(Url,strFile,0);
}
function Preview()
{
    CmCaptureOcx.PreviewFile(strFile);
}

function SetResolution()
{
    var obj=document.getElementById("Resolution") ;
    var index=obj.selectedIndex;
    CmCaptureOcx.SetResolution(index);
}

function StartVideoRecord()
{
    var path = "d:\\test\\1.wmv"
    CmCaptureOcx.StartVideo(path,1);
}

function SeriesCapture()
{
    var path = "d:\\test\\自动连拍\\";
    CmCaptureOcx.SeriesCapture(1,path);
}

function ReadBarCode()
{
    if(bReadBarCode == 0)
    {    
        bReadBarCode = 1;
        CmCaptureOcx.ReadBarCode(bReadBarCode);
    }
    else    
    {
        bReadBarCode = 0;
        CmCaptureOcx.ReadBarCode(bReadBarCode);
    }
}

function DeleteFile()
{
    CmCaptureOcx.DeleteFile(strFile);
}

function GetDevSN()
{
    var strSN =CmCaptureOcx.GetDevSN(0);
}

function SetDenoise()
{
    if(bSetDenoise == 0)
    {    
        bSetDenoise = 1;
        CmCaptureOcx.SetDenoise(bSetDenoise);
    }
    else
    {
        bSetDenoise = 0;
        CmCaptureOcx.SetDenoise(bSetDenoise);
    }
}

function SetFileType()
{
    var obj=document.getElementById("FileType") ;
    var index=obj.selectedIndex;
    CmCaptureOcx.SetFileType(index);
}

function SetImageColorMode()
{
    var obj=document.getElementById("ColourMode") ;
    var index=obj.selectedIndex;
    CmCaptureOcx.SetImageColorMode(index);
}

function StartVideo()
{
    CmCaptureOcx.Initial();
    CmCaptureOcx.StartRun(index);
    AddResolution2Comb(Reso);
    SetResolution();
    SetFileType();
}

function AddResolution2Comb(f)
{
    var i = 0;
    var total = CmCaptureOcx.GetResolutionCount();
    for( i = 0 ; i < total ; i++ )
    {
        var resolution = CmCaptureOcx.GetResolution(i);
        f.Resolution.options[i].text=resolution;
    }
}

function ChangeDevice()
{
    var obj=document.getElementById("DeviceName") ;
    index=obj.selectedIndex;
    CmCaptureOcx.StartRun(index);
    AddResolution2Comb(Reso);
    SetResolution();
}

function SetPicMark()
{
    CmCaptureOcx.SetMarkPic("C:\\1.jpg");
}

function AddDevice()
{
    var i = 0;
    var total = CmCaptureOcx.GetDevCount();
    for( i = 0 ; i < total ; i++ )
    {
        var DevEle = CmCaptureOcx.GetDevFriendName(i);
        Reso.DeviceName.options[i].text=DevEle;
    }
}

function Sleep(seconds)
{
    var d1 = new Date(); 
    var t1 = d1.getTime(); 
    for (;;)
    { 
        var d2 = new Date(); 
        var t2 = d2.getTime(); 
        if (t2-t1 > seconds*1000)
        { 
            break; 
        }
    }
}

function Test()
{
    strCardFile = "d:\\test\\cardImage" + cardIndex;
    strCardFile += ".jpg";
    CmCaptureOcx.CaptureImage(strCardFile);
    if(cardIndex == 0)
    {
        cardIndex = 1;
    }
    else 
    {
        CmCaptureOcx.CombineTwoImage("d:\\test\\cardImage.jpg","d:\\test\\cardImage0.jpg","d:\\test\\cardImage1.jpg",1);
        cardIndex = 0;
    }
    
}

function ConvertToPDF()
{
    var pdfFileName = "d:\\test\\testpdf.pdf"
    CmCaptureOcx.Convert2PDF(pdfFileName ,0);
}

</script>
<SCRIPT type="text/javascript" for="CmCaptureOcx" event="GetImageFileName(fileName);">
    CmCaptureOcx.AddPDFImageFile(fileName);
</SCRIPT>

<SCRIPT type="text/javascript"  for="CmCaptureOcx"  event="GetRButtonDownPoint(x,y);"> 
    alert(x);    
</SCRIPT>
    </head>

    <body onload =" CmCaptureOcx.Initial();AddDevice();">
    <center>
        <p>

            <OBJECT id="CmCaptureOcx" style="MARGIN-LEFT:5px; WIDTH: 52.4%; HEIGHT:80%" 
            classid="clsid:3CA842C5-9B56-4329-A7CA-35CA77C7128D" >         
            </OBJECT>    
            
        </p>
    </center>
        <p>
            <center>
                <input type = "button" value = " 开始视频 " onClick = "StartVideo();" name = "start">
                <input type = "button" value = " 停止视频 " onClick = "CmCaptureOcx.Destory();" name = "Destory">
                <input type = "button" value = " 拍    照 " onClick = "Capture();" name = "Capture">
                <input type = "button" value = " 条码拍摄 " onClick = "ReadBarCode();" name = "ReadBarCode">
                <input type = "button" value = " 自动连拍 " onClick = "SeriesCapture();" name = "SeriesCapture"><br>
                <input type = "button" value = " 自动裁切 " onClick = "Adjust();" name = "AutoCrop">
                <input type = "button" value = " 手动裁切 " onClick = "SetCropArea();" name = "CusCrop">
                <input type = "button" value = " 预    览 " onClick = "Preview();" name = "Preview">
                <input type = "button" value = " 开始录像 " onClick = "StartVideoRecord();" name = "StartVideo">
                <input type = "button" value = " 关闭录像 " onClick = "CmCaptureOcx.EndVideo();" name = "EndVideo"><br>
                <input type = "button" value = " 删除文件 " onClick = "DeleteFile();" name = "DeleteFile">
                <input type = "button" value = " 消除噪点 " onClick = "SetDenoise();" name = "SetDenoise">
                <input type = "button" value = " 图像设置 " onClick = "CmCaptureOcx.ShowImageSettingWindow();" name = "ShowImageSettingWindow">
                                <input type = "button" value = " 视频设置 " onClick = "CmCaptureOcx.ShowDevSettingWindow();" name = "ShowDevSettingWindow">
                <input type = "button" value = " 自动对焦 " onClick = "CmCaptureOcx.AutoFocus();" name = "AutoFocus"><br>
                <input type = "button" value = " 证件拍摄 " onClick = "Test();" name = "test">
                <input type = "button" value = " 合并PDF " onClick = "ConvertToPDF();" name = "PDF">
                                <input type = "button" value = " 添加图片水印 " onClick = "SetPicMark();" name = "SetPicMark">
                                <input type = "button" value = " 获取设备SN " onClick = "GetDevSN();" name = "SN"><br>
                <input type = "button" value = " A  3 " onClick = "CmCaptureOcx.SetCusCropType(1);" name = "A3">
                <input type = "button" value = " A  4 " onClick = "CmCaptureOcx.SetCusCropType(2);" name = "A4">
                <br><br>
            </center>


            <form name = "Reso">
            设 备 名 称:
                <select name="DeviceName" id = "DeviceName" onchange = "ChangeDevice()">
                    <option value="0"></option>
                    <option value="1"></option>
                    <option value="2"></option>
                    <option value="3"></option>
                    <option value="4"></option>
                </select>
            分  辨  率 :
                <select name="Resolution" id = "Resolution" onchange = "SetResolution()">
                    <option value="0">开启视频后获取分辨率</option>
                    <option value="1"></option>
                    <option value="2"></option>
                    <option value="3"></option>
                    <option value="4"></option>
                    <option value="5"></option>
                    <option value="6"></option>
                    <option value="7"></option>
                    <option value="8"></option>
                    <option value="9"></option>
                </select>

            图 片 格 式:
                <select name="FileType" id = "FileType" onchange = "SetFileType()">
                    <option value="0">bmp</option>
                    <option value="1">jpg</option>
                    <option value="2">tif</option>
                    <option value="3">png</option>
                </select>
            颜 色 格 式:
                <select name="ColourMode" id = "ColourMode" onchange = "SetImageColorMode()">
                    <option value="0">彩色</option>
                    <option value="1">灰度</option>
                    <option value="2">黑白</option>
                    <option value="3">印章</option>
                    <option value="4">签名</option>
                </select>
            </form>

            输入URL地址:
            <input type = "text" name = "URL" id = "URL" value = "http://192.168.1.123:8080/UploadTestApp/uploadfile.do">
            <input type = "button" value = " 文件上传 " onClick = "UpdataFile();" name = "Updata">
        </p>
        

    </body>

</html>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值