📄 cameraplus.h
字号:
//功能说明: 设定系统window的方向,当系统window方向更改时,要重新设定,保证Preview出来的图像能正确的以所见及所得的图像显示在window上
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// DWORD dwOrient[in] 这个值定义与系统一致
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetOrientation(HCAMERA hCam,DWORD dwOrient);
//功能说明: 设定Preview图像要显示的Window,如果hWnd设定为NULL,则Preview数据需要调用者自己处理,处理说明请看ETStartPreview说明
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// DWORD dwOrient[in] 这个值定义与系统一致
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetPreviewWindow(HCAMERA hCam,HWND hWnd);
//功能说明: 启动Preview,
// 1. 如果有用ETSetPreviewWindow设定过Preview的window,那么将preview的图像显示在调用者指定的window上,如果指定的window比preview画面小,
// 那么preview图像将以等比缩小以后,居中显示在window中间,如果window比preview图像大,那么将使用原始图像大小居中显示在window中,
// 该指定的window不能进行其他画图动作,否这影响preview效果.
// 2.如果没有设定PreviewWindow后者PreviewWindow为NULL,那么将停止Preview数据现在,用户指定处理Preview的显示,dll紧在收到数据时用Event通知
// 调用者有心的preview数据达到,调用者可以用 ETGetPreviewBitmap/ETGetPreviewOrignalData得到新的Preview数据.
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETStartPreview(HCAMERA hCam);
//功能说明: 停止preview
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETStopPreview(HCAMERA hCam);
//功能说明: 可以得到当前最新的Preview Data的Bitmap数据,Bitmap的方向由参数来决定是适合ETSetOrientation设定的方向
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// BOOL bOrient[in] 是否要将Preview数据调整适合ETSetOrientation设定的方向
//返回值说明: 成功返回得到的Bitmap,否则返回NULL, 该Bitmap需要使用用DeleteObject释放
CAMERAPLUS_API HBITMAP ETGetPreviewBitmap(HCAMERA hCam,BOOL bOrient);
//功能说明: 得到驱动中直接送出的数据,这些数据格式是 BGR 16 bit(565)图像的数据
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// void * pBuf 用户所开的Buffer指针
// int * pcbBuf 如果用户所开空间不足,返回False的同时pcbBuf返回所需要的大小
// BOOL bOrient[in] 是否要将Preview数据调整适合ETSetOrientation设定的方向, 为了和之前的版本兼容,默认值为FALSE。
//返回值说明: 成功返回TRUE,否则返回FALSE, 同时pcbBuf返回所需要的大小
CAMERAPLUS_API BOOL ETGetPreviewOrignalData(HCAMERA hCam, void * pBuf, int* pcbBuf, BOOL bOrient = FALSE);
//拍摄图片大小定义
#define CAM_IMAGE_QCIF 0 //176*144
#define CAM_IMAGE_CIF 1 //352*288
#define CAM_IMAGE_QVGA 2 //320*240
#define CAM_IMAGE_VGA 3 //640*480
#define CAM_IMAGE_SXGA 4 //1280*960
#define CAM_IMAGE_UXGA 5 //1600*1200
//功能说明: 用来定义照片编码引擎的实现,由使用者实现,本dll调用
//参数说明: void * pData picture 从driver拿到的数据,格式为24bitRGB 或 YUV(4:2:2) 在ETSetPictureEncodeEngine时由用户设定
// 这快buffer需要有用户使用VirtualFree(lpAddress, 0, MEM_RELEASE);来释放
// UCHAR ucDim picture 大小,这里决定了pData的大小,RGB计算方法为: 3*width*height bytes YUV计算方法为width*height bytes
typedef void (* PPICTUREENGINE)(void * pData,UCHAR ucDim,LPARAM lUserData);
//功能说明: 设定照片编码引擎
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// PPICTUREENGINE pPictureEngineFun[in] 由使用者实现的视频编码引擎
// LPARAM lUserData 使用者自己定义的数据
// BOOL bFormat TRUE声明需要RGB数据,FALSE声明需要YUV数据
//返回值说明: 成功返回TRUE,失败返回FALSE
CAMERAPLUS_API BOOL ETSetPictureEncodeEngine(HCAMERA hCam, PPICTUREENGINE pPictureEngineFun,LPARAM lUserData, BOOL bFormat);
//功能说明: 拍摄照片,调用照片编码引擎
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucDim video 大小,这里决定了PPICTUREENGINE中pData的大小,计算方法为: 3*width*height bytes
// BOOL bOrient[in] 是否要将picture数据调整适合ETSetOrientation设定的方向,否则返回默认方向 ETC_DMDO_270
//返回值说明: 成功返回TRUE,失败返回FALSE
CAMERAPLUS_API BOOL ETCapturePicture(HCAMERA hCam, UCHAR ucDim, BOOL bOrient);
//////////////////////////////////////////////////////////////////////////
//新增
//功能说明: 可以得到拍摄照片之后Preview Data的Bitmap数据,Bitmap的方向由参数来决定是适合ETSetOrientation设定的方向
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// BOOL bOrient[in] 是否要将Preview数据调整适合ETSetOrientation设定的方向
//返回值说明: 成功返回得到的Bitmap,否则返回NULL, 该Bitmap需要使用用DeleteObject释放
CAMERAPLUS_API HBITMAP ETGetPicturePreviewFrame(HCAMERA hCam, BOOL bOrient);
//video 大小定义
#define CAM_VIDEO_IMAGE_QVGA 2 //320*240
#define CAM_VIDEO_IMAGE_QCIF 1 //176*144
#define CAM_VIDEO_IMAGE_SQCIF 0 //128*96
#define CAM_VIDEO_IMAGE_VGA 3 //640*480
//功能说明: 用来定义视频编码引擎的实现,由使用者实现,本dll调用
//参数说明: void * pData video 从driver拿到的数据,格式为YUV(4:2:2)
// UCHAR ucDim video 大小,这里决定了pData的大小,计算方法为: YUV422: 2*width*height bytes; YUV420:width*height*3/2 bytes
typedef void (* PVIDEOENGINE)(void * pData,UCHAR ucDim,LPARAM lUserData);
//功能说明: 设定视频编码引擎
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// PVIDEOENGINE pVideoEngineFun[in] 由使用者实现的视频编码引擎
// LPARAM lUserData 使用者自己定义的数据
//返回值说明: 成功返回TRUE,失败返回FALSE
CAMERAPLUS_API BOOL ETSetVideoEncodeEngine(HCAMERA hCam, PVIDEOENGINE pVideoEngineFun,LPARAM lUserData);
//功能说明,启动Video录影
// 1.如果Preview window有设定,那么preview处理会与ETStartPreview一样,同时如果设定过ETVideoEncodeEngine,
// 那么回调用视频引擎工作
// 2.如果Preview window没有设定,那么使用者会得到preview数据更新的event,得到event后可以使用ETGetPreviewBitmap/ETGetPreviewOrignalData得到preview数据,
// 如果没有设定视频引擎,那么使用者会得到video更新的event,得到event以后可以使用ETGetVideoData得到video的数据
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucDim video 大小
//返回值说明: 成功返回TRUE,失败返回FALSE
//注意:调用该接口后接收不到Preview Event,而且请不要在这个接口前调用ETStartPreview
CAMERAPLUS_API BOOL ETStartVideo(HCAMERA hCam,UCHAR ucDim);
//功能说明,停动Video录影
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明: 成功返回TRUE,失败返回FALSE
CAMERAPLUS_API BOOL ETStopVideo(HCAMERA hCam);
//功能说明: 获得从Camera Device中的Video数据 YUV(4:2:2)
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
// void * pBuf 用户所开的Buffer指针
// int * pcbBuf 如果用户所开空间不足,返回False的同时pcbBuf返回所需要的大小
//返回值说明:
// 成功返回TRUE,否则返回FALSE, 同时pcbBuf返回所需要的大小
CAMERAPLUS_API BOOL ETGetVideoData (HCAMERA hCam, void * pBuf, int* pcbBuf);
#define AUTO 0
#define INCANDESCENCE 1
#define FLUORESCENCE 2
#define SHADOW 3
#define NightMode 4
#define CLOUDY 5
#define SUNSHINE 6
//功能说明: 设置白平衡的模式
//2007-1-22 必须是Samsung的Camera并且安装了新的Camera驱动才能使用
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
// UINT unMode[in] 设置的白平衡模式ID号
//返回值说明:
// 成功返回TRUE,否则返回FALSE
CAMERAPLUS_API BOOL ETSetWhiteBalanceMode(HCAMERA hCam, UINT unMode);
//功能说明: 获得白平衡的模式
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
// UINT unMode[out] 取得白平衡模式ID号
//返回值说明:
// 成功返回TRUE,否则返回FALSE
CAMERAPLUS_API BOOL ETGetWhiteBalanceMode(HCAMERA hCam, UINT & unMode);
//功能说明: 测试Camera是否具有近拍的功能
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明:
// 具有该功能返回TRUE,否则返回FALSE
CAMERAPLUS_API BOOL ETIsHasCloserFun(HCAMERA hCam);
//功能说明: 测试Camera是否能用ETSetWhiteBalanceMode设置白平衡
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明:
// 具有该功能返回TRUE,否则返回FALSE
CAMERAPLUS_API BOOL ETIsNewWBSettingMode(HCAMERA hCam);
//功能说明: 相机开始自动对焦
//参数说明:
// HCAMERA hCam[in] ETOpenCamera返回的值
//返回值说明:
// 无
CAMERAPLUS_API void ETStartAutoFocus(HCAMERA hCam);
#define SELECTION_REAR 0
#define SELECTION_FRONT 1
//功能说明: 设置取景相机
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucFlag[in] SELECTION_REAR or SELECTION_FRONT
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetSelection(HCAMERA hCam, UCHAR ucFlag);
//功能说明: 获得当前取景相机
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucFlag[out] SELECTION_REAR <=ucFlag<= SELECTION_FRONT
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETGetSelection(HCAMERA hCam, UCHAR & ucFlag);
//功能说明: 获得当前驱动版本
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucVer[out]
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETGetDriverVer(HCAMERA hCam, UCHAR & ucVer);
#define REDBLUELEVEL_MAX 0xFFFF
#define REDBLUELEVEL_MIN 0x1010
//功能说明: 设置红蓝量水平
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// USHORT usLevel[in] REDBLUELEVEL_MIN <=usLevel<= REDBLUELEVEL_MAX
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetRedBlueLevel(HCAMERA hCam, USHORT usLevel);
#define CONTRAST_MIN 0
#define CONTRAST_MAX 4
#define CONTRAST_MAX_X550 7 //for X500+
//功能说明: 设置Contrast
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// USHORT usLevel[in] CONTRAST_MIN <=usLevel<= CONTRAST_MAX/CONTRAST_MAX_X550
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetContrast(HCAMERA hCam, UCHAR ucFlag);
//功能说明: 获得Contrast
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucVer[out]
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETGetContrast(HCAMERA hCam, UCHAR & ucFlag);
#define SHARPEN_MIN 0
#define SHARPEN_MAX 1
#define SHARPEN_MAX_X550 8 //for X500+
//功能说明: 设置Sharpen
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// USHORT usLevel[in] SHARPEN_MIN <=usLevel<= SHARPEN_MAX/SHARPEN_MAX_X550
// for X500+:0~7: [weak to strong]; 8: auto sharpness
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetSharpen(HCAMERA hCam, UCHAR ucFlag);
//功能说明: 获得Sharpen
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucVer[out]
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETGetSharpen(HCAMERA hCam, UCHAR & ucFlag);
#define BRIGHTNESSLEVEL_MIN 0
#define BRIGHTNESSLEVEL_MAX 4
#define BRIGHTNESSLEVEL_MAX_X550 8 //for X500+
//功能说明: 设置Brightness
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// USHORT usLevel[in] BRIGHTNESSLEVEL_MIN <=usLevel<= BRIGHTNESSLEVEL_MAX/BRIGHTNESSLEVEL_MAX_X550
// for X500+:0: 最亮; 8: 最暗;
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetBrightnessLevel(HCAMERA hCam, UCHAR ucFlag);
//功能说明: 获得Brightness
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// UCHAR ucVer[out]
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETGetBrightnessLevel(HCAMERA hCam, UCHAR & ucFlag);
#define VIDOEFORMAT_YUV420 0
#define VIDOEFORMAT_YUV422 2
//功能说明: 设置拍摄Video的格式 必须在ETStartVideo前调用
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// DWORD dwValue[in] VIDOEFORMAT_YUV420 or VIDOEFORMAT_YUV422
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API BOOL ETSetVideoFormat(HCAMERA hCam, DWORD & dwValue);
//功能说明: 是否在屏幕上显示自动对焦的框
//参数说明: HCAMERA hCam[in] ETOpenCamera返回的值
// BOOL bFlag[in] TRUE:显示, FALSE:不显示
// COLORREF crColor[in]设定框的颜色
//返回值说明: 成功返回TRUE, 失败返回FALSE
CAMERAPLUS_API void ETEnableFocusFrame(HCAMERA hCam, BOOL bFlag, COLORREF crColor);
#ifdef __cplusplus
}
#endif
#endif //CAMERAPLUS_HEAD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -