381 lines
15 KiB
C
381 lines
15 KiB
C
#ifndef _MV_CAMERA_IMAGE_H_
|
||
#define _MV_CAMERA_IMAGE_H_
|
||
|
||
#include "CameraDefine.h"
|
||
#include "CameraStatus.h"
|
||
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 创建一个新的Image
|
||
/// \param [out] Image 新创建的图片
|
||
/// \param [in] pFrameBuffer 帧数据
|
||
/// \param [in] pFrameHead 帧头
|
||
/// \param [in] bCopy TRUE: 复制出一份新的帧数据 FALSE: 不复制,直接使用pFrameBuffer指向的缓冲区
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Create a new Image
|
||
/// \param [out] Image Newly Created Image
|
||
/// \param [in] pFrameBuffer frame data
|
||
/// \param [in] pFrameHead Frame Header
|
||
/// \param [in] bCopy TRUE: Copy a new frame data FALSE: Do not copy, directly use the buffer pointed to by pFrameBuffer
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_Create(
|
||
void** Image,
|
||
BYTE *pFrameBuffer,
|
||
tSdkFrameHead* pFrameHead,
|
||
BOOL bCopy
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 创建一个空的Image
|
||
/// \param [out] Image 新创建的图片
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Create an empty Image
|
||
/// \param [out] Image Newly Created Image
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_CreateEmpty(
|
||
void** Image
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 销毁Image
|
||
/// \param [in] Image
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Destroy Image
|
||
/// \param [in] Image
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_Destroy(
|
||
void* Image
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 从Image获取帧数据和帧头
|
||
/// \param [in] Image
|
||
/// \param [out] DataBuffer 帧数据
|
||
/// \param [out] Head 帧头
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Get frame data and frame header from Image
|
||
/// \param [in] Image
|
||
/// \param [out] DataBuffer Frame Data
|
||
/// \param [out] Head header
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_GetData(
|
||
void* Image,
|
||
BYTE** DataBuffer,
|
||
tSdkFrameHead** Head
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 获取Image的用户自定义数据
|
||
/// \param [in] Image
|
||
/// \param [out] UserData 返回用户自定义数据
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Get User's Custom Data of Image
|
||
/// \param [in] Image
|
||
/// \param [out] UserData returns user-defined data
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_GetUserData(
|
||
void* Image,
|
||
void** UserData
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 设置Image的用户自定义数据
|
||
/// \param [in] Image
|
||
/// \param [in] UserData 用户自定义数据
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Set user-defined data for Image
|
||
/// \param [in] Image
|
||
/// \param [in] UserData User-defined data
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_SetUserData(
|
||
void* Image,
|
||
void* UserData
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 判断一个Image是否为空
|
||
/// \param [in] Image
|
||
/// \param [out] IsEmpty 为空返回:TRUE(1) 否则返回:FALSE(0)
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Determine if an Image is empty
|
||
/// \param [in] Image
|
||
/// \param [out] IsEmpty Empty Returns: TRUE(1) Otherwise returns: FALSE(0)
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_IsEmpty(
|
||
void* Image,
|
||
BOOL* IsEmpty
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 绘制Image到指定窗口
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd 目的窗口
|
||
/// \param [in] Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Draw Image to the specified window
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd destination window
|
||
/// \param [in] Algorithm scaling algorithm 0:fast but slightly worse quality 1:slower but better quality
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_Draw(
|
||
void* Image,
|
||
HWND hWnd,
|
||
int Algorithm
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 拉升绘制Image到指定窗口
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd 目的窗口
|
||
/// \param [in] Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Pull up drawing Image to the specified window
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd destination window
|
||
/// \param [in] Algorithm scaling algorithm 0:fast but slightly worse quality 1:slower but better quality
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_DrawFit(
|
||
void* Image,
|
||
HWND hWnd,
|
||
int Algorithm
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 绘制Image到指定DC
|
||
/// \param [in] Image
|
||
/// \param [in] hDC 目的DC
|
||
/// \param [in] Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
|
||
/// \param [in] xDst 目标矩形的左上角X坐标
|
||
/// \param [in] yDst 目标矩形的左上角Y坐标
|
||
/// \param [in] cxDst 目标矩形的宽度
|
||
/// \param [in] cyDst 目标矩形的高度
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Draw Image to specified DC
|
||
/// \param [in] Image
|
||
/// \param [in] hDC destination DC
|
||
/// \param [in] Algorithm scaling algorithm 0:fast but slightly worse quality 1:slower but better quality
|
||
/// \param [in] xDst The X coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] yDst The Y coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] cxDst Width of target rectangle
|
||
/// \param [in] cyDst Height of target rectangle
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_DrawToDC(
|
||
void* Image,
|
||
HDC hDC,
|
||
int Algorithm,
|
||
int xDst,
|
||
int yDst,
|
||
int cxDst,
|
||
int cyDst
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 拉升绘制Image到指定DC
|
||
/// \param [in] Image
|
||
/// \param [in] hDC 目的DC
|
||
/// \param [in] Algorithm 缩放算法 0:快速但质量稍差 1:速度慢但质量好
|
||
/// \param [in] xDst 目标矩形的左上角X坐标
|
||
/// \param [in] yDst 目标矩形的左上角Y坐标
|
||
/// \param [in] cxDst 目标矩形的宽度
|
||
/// \param [in] cyDst 目标矩形的高度
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Pull up drawing Image to specified DC
|
||
/// \param [in] Image
|
||
/// \param [in] hDC destination DC
|
||
/// \param [in] Algorithm scaling algorithm 0:fast but slightly worse quality 1:slower but better quality
|
||
/// \param [in] xDst The X coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] yDst The Y coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] cxDst Width of target rectangle
|
||
/// \param [in] cyDst Height of target rectangle
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_DrawToDCFit(
|
||
void* Image,
|
||
HDC hDC,
|
||
int Algorithm,
|
||
int xDst,
|
||
int yDst,
|
||
int cxDst,
|
||
int cyDst
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 绘制Image到指定窗口(不缩放)
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd 目的窗口
|
||
/// \param [in] xDst 目标矩形的左上角X坐标
|
||
/// \param [in] yDst 目标矩形的左上角Y坐标
|
||
/// \param [in] cxDst 目标矩形的宽度
|
||
/// \param [in] cyDst 目标矩形的高度
|
||
/// \param [in] xSrc 图像矩形的左上角X坐标
|
||
/// \param [in] ySrc 图像矩形的左上角Y坐标
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Draw Image to specified window (without scaling)
|
||
/// \param [in] Image
|
||
/// \param [in] hWnd destination window
|
||
/// \param [in] xDst The X coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] yDst The Y coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] cxDst Width of target rectangle
|
||
/// \param [in] cyDst Height of target rectangle
|
||
/// \param [in] xSrc X coordinate of the upper left corner of the image rectangle
|
||
/// \param [in] ySrc Y coordinate of the upper left corner of the image rectangle
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_BitBlt(
|
||
void* Image,
|
||
HWND hWnd,
|
||
int xDst,
|
||
int yDst,
|
||
int cxDst,
|
||
int cyDst,
|
||
int xSrc,
|
||
int ySrc
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 绘制Image到指定DC(不缩放)
|
||
/// \param [in] Image
|
||
/// \param [in] hDC 目的DC
|
||
/// \param [in] xDst 目标矩形的左上角X坐标
|
||
/// \param [in] yDst 目标矩形的左上角Y坐标
|
||
/// \param [in] cxDst 目标矩形的宽度
|
||
/// \param [in] cyDst 目标矩形的高度
|
||
/// \param [in] xSrc 图像矩形的左上角X坐标
|
||
/// \param [in] ySrc 图像矩形的左上角Y坐标
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Draw Image to specified DC (without scaling)
|
||
/// \param [in] Image
|
||
/// \param [in] hDC destination DC
|
||
/// \param [in] xDst The X coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] yDst The Y coordinate of the upper left corner of the target rectangle
|
||
/// \param [in] cxDst Width of target rectangle
|
||
/// \param [in] cyDst Height of target rectangle
|
||
/// \param [in] xSrc X coordinate of the upper left corner of the image rectangle
|
||
/// \param [in] ySrc Y coordinate of the upper left corner of the image rectangle
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_BitBltToDC(
|
||
void* Image,
|
||
HDC hDC,
|
||
int xDst,
|
||
int yDst,
|
||
int cxDst,
|
||
int cyDst,
|
||
int xSrc,
|
||
int ySrc
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 以bmp格式保存Image
|
||
/// \param [in] Image
|
||
/// \param [in] FileName 文件名
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Save Image as bmp
|
||
/// \param [in] Image
|
||
/// \param [in] FileName file name
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_SaveAsBmp(
|
||
void* Image,
|
||
char const* FileName
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 以jpg格式保存Image
|
||
/// \param [in] Image
|
||
/// \param [in] FileName 文件名
|
||
/// \param [in] Quality 保存质量(1-100),100为质量最佳但文件也最大
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Save Image as jpg
|
||
/// \param [in] Image
|
||
/// \param [in] FileName file name
|
||
/// \param [in] Quality save quality (1-100), 100 is the best quality but the file is also the largest
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_SaveAsJpeg(
|
||
void* Image,
|
||
char const* FileName,
|
||
BYTE Quality
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 以png格式保存Image
|
||
/// \param [in] Image
|
||
/// \param [in] FileName 文件名
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Save Image as png
|
||
/// \param [in] Image
|
||
/// \param [in] FileName file name
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_SaveAsPng(
|
||
void* Image,
|
||
char const* FileName
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 以raw格式保存Image
|
||
/// \param [in] Image
|
||
/// \param [in] FileName 文件名
|
||
/// \param [in] Format 0: 8Bit Raw 1: 16Bit Raw
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Save Image as raw
|
||
/// \param [in] Image
|
||
/// \param [in] FileName file name
|
||
/// \param [in] Format 0: 8Bit Raw 1: 16Bit Raw
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_SaveAsRaw(
|
||
void* Image,
|
||
char const* FileName,
|
||
int Format
|
||
);
|
||
|
||
/// @ingroup MV_IMAGE
|
||
/// \~chinese
|
||
/// \brief 从Image创建一个IPicture
|
||
/// \param [in] Image
|
||
/// \param [out] NewPic 新创建的IPicture
|
||
/// \return 成功返回 CAMERA_STATUS_SUCCESS(0)。否则返回非0值的错误码, 请参考 CameraStatus.h 中错误码的定义。
|
||
/// \~english
|
||
/// \brief Create an IPicture from an Image
|
||
/// \param [in] Image
|
||
/// \param [out] NewPic Newly created IPicture
|
||
/// \return Returns CAMERA_STATUS_SUCCESS(0) successfully. Otherwise, it returns a non-zero error code. Please refer to the definition of the error code in CameraStatus.h.
|
||
MVSDK_API CameraSdkStatus __stdcall CameraImage_IPicture(
|
||
void* Image,
|
||
IPicture** NewPic
|
||
);
|
||
|
||
|
||
|
||
|
||
#endif // _MV_CAMERA_IMAGE_H_
|