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,2,3,4,5,配置文件在SDK安装目录的cfg下)
1 --表示左上
2—表示右上
3—表示右下
4—表示左下
5--表示中间
如果需要添加图片水印,在调用Initial()之后,
调用SetMarkPic(L”C:\\1.jpg”); 设置水印图片的路径
- 调用函数ReadBarCode(TRUE),参数设为TRUE
- 拍照CaptureImage();
- 调用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>