⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cameraplus.h

📁 E-ten Glofiish X500+ Camera driver and application all comment and documentation info on chines
💻 H
📖 第 1 页 / 共 2 页
字号:

//功能说明: 设定系统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 + -