增加MV900视频卡测试功能。
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
#ifndef __COMM_H__
|
||||
#define __COMM_H__
|
||||
|
||||
#include "Windows.h"
|
||||
#ifdef __cplusplus
|
||||
#define MVVGA extern "C" __declspec (dllexport)
|
||||
#else
|
||||
#define MVVGA __declspec (dllexport)
|
||||
#endif
|
||||
|
||||
// 图像内容动态改变消息, WPARAM, LPARAM参数不使用
|
||||
#define VGA_IMAGECHANGE WM_USER + 1011
|
||||
// 信号丢失消息, WPARAM, LPARAM参数不使用
|
||||
#define VGA_SIGNALLOST WM_USER + 1012
|
||||
// 信号改变消息, WPARAM的高16位为信号有效的高, 低16位为信号有效的宽;
|
||||
// LPARAM的高16位为信号垂直偏移, 低16位为信号水平偏移;
|
||||
#define VGA_SIGNALCHANGE WM_USER + 1013
|
||||
|
||||
enum VGAPROPERY{ DRV_INDX=0, // 仅读, 返回当前卡的驱动下标
|
||||
GET_TYPE, // 仅读, 返回当前卡类型
|
||||
SIG_SOURCE, // 读写, 同步源选择,0--行场分离,1--绿路同步, I/III型卡有效,II/IV型卡无效
|
||||
SIG_VHZ, // 仅读, 输入信号的场频
|
||||
SIG_HHZ, // 仅读, 行频率
|
||||
SIG_HTOTAL, // 读写, 当前信号行内总点数
|
||||
SIG_VTOTAL, // 读写, 当前信号场内总行数, I/III型卡有效,II/IV型卡无效
|
||||
SIG_VPOLAR, // 读写, 当前信号场极性, I/III型卡有效,II/IV型卡无效
|
||||
SIG_PLLV, // 读写, 当前信号PLL电压
|
||||
SIG_PLLI, // 读写, 当前信号PLL电流
|
||||
SIG_XOFF, // 读写, 当前信号的水平偏移
|
||||
SIG_YOFF, // 读写, 当前信号的垂直偏移
|
||||
SIG_HIGH, // 读写, 当前信号的垂直高度
|
||||
SIG_WIDTH, // 读写, 当前信号的水平宽度
|
||||
SIG_FRAME, // 读写, 采集时的桢间隔时间ms级
|
||||
SIG_UPDOWN, // 读写, 采集时上下翻转
|
||||
// 设置/得到当前采集图像的尺寸, 但不一定为输入图像信号的大小. 输入的大小如果和
|
||||
// 输入图像信号的大小对应, 则采集到的图像是未被缩放的原始图像, 否则采集到的图
|
||||
// 像将被缩放.
|
||||
OUT_HIGH, // 读写, DSHOW输出窗口高
|
||||
OUT_WIDTH, // 读写, DSHOW输出窗口宽
|
||||
OUT_QUALITY, // 读写, 缩放质量选择
|
||||
CHK_DOING, // 仅写, 手动行场频测试,I型卡有效,II型卡无效
|
||||
USER_EVENT, // 信号改变/丢失事件,写时初始化,读时反初始化,I型卡无效,II型卡有效
|
||||
USER_CAUSE, // 被有事件的原因,写无效,读时有效,0-信号正常,1-信号丢失,2-信号改变
|
||||
RESET_SAVE, // Get 信号文件保存 = 1; 恢复 = 0;
|
||||
GET_SIGIMAGE, // 未实现,仅为占位,用函数Cap_GetOutImage()和Cap_GetSignalImage()代替
|
||||
GET_NUMBER, // Get 得当前采集的桢率
|
||||
SIG_CAPMODE, // 设置板卡采集模式;1 -- 快速模式;0 -- 普通模式
|
||||
// 调节属性量, 对当前图像的R/G/B分量进行调节, 每个分量都有亮度和对比度两项,
|
||||
// 值越小表现越明显. 最小的值0, 代表最大的对比度或最大的亮度.
|
||||
_BRIGHTNESS, // 亮度
|
||||
_HUE, // 色度
|
||||
_SATURATION, // 饱和度
|
||||
_CONTRAST, // 对比度
|
||||
_GAMMA, //
|
||||
_SHARPNESS, // 锐利度
|
||||
_R_GRAY, // VGA卡的R分量的亮度
|
||||
_G_GRAY, // VGA卡的G分量的亮度
|
||||
_B_GRAY, // VGA卡的B分量的亮度
|
||||
_R_CONTRAST, // VGA卡的R分量的对比度
|
||||
_G_CONTRAST, // VGA卡的G分量的对比度
|
||||
_B_CONTRAST, // VGA卡的B分量的对比度
|
||||
//
|
||||
PIEXL_BIT, // 得到或设置当前采集图像的像素位数, 取值为32(32位RGBa888)/24
|
||||
// (24位RGB888)/16(16位YUV422)/8(8位灰度图); 能否采集到8位灰
|
||||
// 度图要根据卡型决定; 对于黑白医疗/雷达信号卡,采集32位/24位
|
||||
// 时是将8位的图像扩展到真彩色方式输出, 这样不丢失灰度级.
|
||||
NOTIFY_HWND, // 为VGA_SIGNALLOST和VGA_SIGNALCHANGE消息设置接收窗口句柄
|
||||
DEV_AVI,
|
||||
DEV_RAW,
|
||||
};
|
||||
|
||||
|
||||
typedef struct _DATAGET_{ ULONG Width;
|
||||
ULONG High;
|
||||
USHORT nColor;
|
||||
USHORT bWait;
|
||||
PUCHAR pData;
|
||||
}DATAGET, *PDATAGET;
|
||||
|
||||
// 画笔样式
|
||||
enum PEN_STYLE{ _SOLID = 0, _DASH, _DOT, _DASHDOT, _DASHDOTDOT };
|
||||
|
||||
// 用户回调函数的原型
|
||||
// pData : 当该用户回调函数被调用时,该参数为图像数据的缓冲区地址
|
||||
// Length : 当该用户回调函数被调用时,该参数为图像数据的缓冲区长度
|
||||
// pUserData: 在设置用户回调函数时传入的用户上下文的指针
|
||||
typedef VOID (WINAPI *PUSERCALL)( PUCHAR pData, ULONG Length, PVOID pUserData );
|
||||
|
||||
// 初始化显示模块时传入的使用DRAW方式的显示的用户回调函数的原型,使用DRAW方式可以在原图像上
|
||||
// 进行绘制文字和图形体,绘制的时机和过程在该回调函数中完成; 进行绘制使用WINDOWS的点, 线,
|
||||
// TextOut API绘制.
|
||||
typedef VOID (WINAPI *USERDRAW)( HDC hDC, PVOID pContext );
|
||||
|
||||
#endif //__COMM_H__
|
||||
@@ -0,0 +1,34 @@
|
||||
#ifndef __CONVERT_H__
|
||||
#define __CONVERT_H__
|
||||
#include "windows.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#define CONVERT extern "C" __declspec (dllexport)
|
||||
#else
|
||||
#define CONVERT __declspec (dllexport)
|
||||
#endif
|
||||
|
||||
#ifndef UINT32
|
||||
#define UINT32 unsigned long
|
||||
#endif
|
||||
|
||||
#ifndef SINT32
|
||||
#define SINT32 long
|
||||
#endif
|
||||
|
||||
#ifndef UINT16
|
||||
#define UINT16 unsigned short
|
||||
#endif
|
||||
|
||||
#ifndef SINT16
|
||||
#define SINT16 short
|
||||
#endif
|
||||
|
||||
#ifndef UINT8
|
||||
#define UINT8 unsigned char
|
||||
#endif
|
||||
|
||||
CONVERT VOID WINAPI InitTables(); //³õʼ»¯YUV422ת»»±í
|
||||
//YUV422תRGB24
|
||||
CONVERT VOID WINAPI Convert422(UINT32 XSize,UINT32 YSize,UINT8 *pBuf,UINT8 *pBGR);
|
||||
#endif
|
||||
Binary file not shown.
@@ -0,0 +1,281 @@
|
||||
#ifndef __MVVGA_H__
|
||||
#define __MVVGA_H__
|
||||
|
||||
#include "COMM.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
/////////////////////////////// 设 备 相 关 控 制 部 件 /////////////////////////////////////
|
||||
|
||||
MVVGA long WINAPI MV_GetCardNumber();
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 创建/释放 MVVGA捕获设备 */
|
||||
/* Description: "MVVGA" */
|
||||
/* Index : 以0为下标的卡号, 最大支持一机4卡 */
|
||||
/* hCap : 由Cap_Create()创建的MVVGA设备句柄 */
|
||||
/* 返回值 : 返回设备的句柄, 下面的函数中对该设备的操作都需要该设备句柄. */
|
||||
MVVGA HANDLE WINAPI Cap_Create( char *Description, ULONG Index );
|
||||
MVVGA VOID WINAPI Cap_Destroy( HANDLE hCap );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 运行/停止设备, 开始捕获图像数据, 如果希望用消息方式来获得图像数据则hWnd参数*/
|
||||
/* 不为NULL, 是接收VGA_IMAGEDATA消息的窗口句柄, 该消息的WPARAM参数为图像缓冲指*/
|
||||
/* 针, LPARAM参数为图像缓冲的字节大小. */
|
||||
/* 强烈建议使用回调方式来获得图像数据, 而将该hWnd置为NULL; 消息方式获得图像数 */
|
||||
/* 据是一种辅助手段. 当你的处理时间大于MVVGA设备回调时间时消息方式才是最有效的*/
|
||||
/* hCap : 要运行的MVVGA设备句柄 */
|
||||
/* hWnd : 接收VGA_IMAGEDATA消息的窗口句柄, 一般设置为NULL, 不使能消息方式. */
|
||||
/* 返回值 : TRUE成功; FALSE失败 */
|
||||
MVVGA BOOL WINAPI Cap_Start( HANDLE hCap );
|
||||
MVVGA VOID WINAPI Cap_Stop( HANDLE hCap );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 设置MVVGA捕获设备的图像数据的用户回调函数,当每一桢图像到达时该回调被调用. */
|
||||
/* 回调函数可在任意时刻被设置,一旦设置即被生效. 要注意的是回调函数是用户写的代*/
|
||||
/* 码被嵌入到系统中, 由中断驱动的,所以要尽可能的精悍, 尽量不要超过一帧的时间; */
|
||||
/* 否则将严重拉慢系统. 如果采集回调不能满足上面的时间要求你可用消息方式 */
|
||||
/* hCap : 已经创建的MVVGA设备句柄 */
|
||||
/* pCall : 设备的用户回调函数,回调函数的原型在COMM.h中 */
|
||||
/* pContext : 传入用户回调函数中的用户定义的上下文指针 */
|
||||
/* 返回值 : 无 */
|
||||
MVVGA VOID WINAPI Cap_SetCallBack( HANDLE hCap, PUSERCALL pCall, PVOID pContext );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 设置输出高和宽, 得到输出高和宽用Cap_GetPropery来完成 */
|
||||
/* High, Width: 输出图像高, 宽 */
|
||||
/* hCap : 已经创建的MVVGA设备句柄 */
|
||||
/* 返回值 : TRUE成功; FALSE失败; */
|
||||
MVVGA BOOL WINAPI Cap_SetOutSize( HANDLE hCap, ULONG High, ULONG Width );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 设置/得到板卡和输入信号/缩放/图像R/G/B分量进行调节控制属性 */
|
||||
/* hCap : 已经创建的MVVGA设备句柄 */
|
||||
/* Propery : 控制属性的类型; 看COMM.h */
|
||||
/* Val : 设置该类型参数的值 */
|
||||
/* Set返回值 : TRUE成功; FALSE失败; */
|
||||
/* Get返回值 : 返回该类型参数的值 */
|
||||
MVVGA BOOL WINAPI Cap_SetPropery( HANDLE hCap, VGAPROPERY Propery, ULONG Val );
|
||||
MVVGA LONG WINAPI Cap_GetPropery( HANDLE hCap, VGAPROPERY Propery );
|
||||
MVVGA LONG WINAPI Cap_GetProperyRange( HANDLE hCap, VGAPROPERY Propery,PLONG pMin,PLONG pMax,PLONG pDefault);
|
||||
|
||||
/*******************************************************************************************/
|
||||
// 描述 : 弹出设备的图像输出控制调节对话框, 方便编程 */
|
||||
// hCap : 已经创建的MVVGA设备句柄 */
|
||||
// 返回值 : TRUE成功; FALSE失败 */
|
||||
MVVGA BOOL WINAPI Cap_ShowOutputControl( HANDLE hCap );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 手动同步方式得到一帧图像的数据, 直到得到图像后该函数才返回 */
|
||||
/* hCap : 已经创建的MVVGA设备句柄 */
|
||||
/* pBuf : 你传入的缓冲区指针; 如果为NULL, 则在该函数返回时得到的是内部缓冲区的指针 */
|
||||
/* Len : 输入时是你传入的缓冲区的大小, 如果该长度小于当前图像的长度则, 则在该函数返 */
|
||||
/* 回时得到的是内部缓冲区的指针. */
|
||||
/* 返回值 : 返回你传入的缓冲区指针, 或内部的内部缓冲区指针, 或出错为NULL; */
|
||||
/* *Len返回为实际的图像的大小. */
|
||||
MVVGA PVOID WINAPI Cap_GetOutImage( HANDLE hCap, PUCHAR pBuf, ULONG* Len );
|
||||
|
||||
MVVGA PVOID WINAPI Cap_GetSignalImage( HANDLE hCap, PULONG pHigh, PULONG pWidth, PULONG pColor );
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////// MVVGA 显 示 部 件 //////////////////////////////////////
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 创建MVVGA的显示部件. 可以创建任意个该部件, 创建的显示部件分为Show和Draw两种,*/
|
||||
/* Show方式只能显示不能在图像上叠加/OSD/重画, Draw方式能显示能在图像上叠加/OSD/*/
|
||||
/* 重画. 每一种显示都可进行按照不同的缩放质量缩放. */
|
||||
/* hWnd : 待显示的窗口句柄 */
|
||||
/* High,Width: 输入的图像缓冲的原始高度, 宽度 */
|
||||
/* nColor : 像素的位数(bits) */
|
||||
/* pDrawCall : 用户重画的回调函数, 任选的可为NULL, 如果非NULL则在显示之前调用该回调, 回调中*/
|
||||
/* 给你了一个HDC, 你可用它来重画希望的点/线/弧/圆/字串 */
|
||||
/* pContext : 回调函数的参数, 任选的可为NULL, 在回调发生时传入用户回调 */
|
||||
/* 返回值 : 返回创建的显示部件的句柄 */
|
||||
MVVGA HANDLE WINAPI Disp_Create( HWND hWnd, ULONG High, ULONG Width, ULONG nColor,
|
||||
USERDRAW pDrawCall, PVOID pContext );
|
||||
MVVGA VOID WINAPI Disp_Destroy( HANDLE hShow ); // 释放MVVGA的显示部件
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 直接显示Show函数, 将pImage中的图像数据直接从左上角指定的位置显示, 无缩放 */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* pImage : 图像数据指针 */
|
||||
/* Top, Left: 显示位置的左上方位置 */
|
||||
MVVGA VOID WINAPI Disp_ShowDirect( HANDLE hShow, PVOID pImage, int Top, int Left );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 直接显示Draw函数, 将pImage的图像数据直接从左上角指定的位置显示, 无缩放可叠加 */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* pImage : 图像数据指针 */
|
||||
/* Top, Left: 显示位置的左上方位置 */
|
||||
MVVGA VOID WINAPI Disp_DrawDirect( HANDLE hShow, int Top, int Left );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 使用Draw或Show的缩放版函数时控制缩放质量的,注意越好的质量越暂用CPU */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* Quality : 显示质量,有四级显示质量: {0, 1, 2, 3} */
|
||||
MVVGA VOID WINAPI Disp_ZoomQuality( HANDLE hShow, ULONG Quality );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 缩放版的显示Show函数, 不可叠加 */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* pImage : 图像数据指针 */
|
||||
/* Top, Left : 显示位置的左上方位置 */
|
||||
/* High,Width: 要缩放显示的高度, 宽度 */
|
||||
MVVGA VOID WINAPI Disp_ShowZoom( HANDLE hShow, PVOID pImage, int Top, int Left, int High,
|
||||
int Width );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 缩放版的显示Draw函数, 可叠加 */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* pImage : 图像数据指针 */
|
||||
/* Top, Left : 显示位置的左上方位置 */
|
||||
/* High,Width: 要缩放显示的高度, 宽度 */
|
||||
MVVGA VOID WINAPI Disp_DrawZoom( HANDLE hShow, int Top, int Left, int High, int Width );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 得到显示部件的显示表面的地址, 一般用Draw显示时, 在显示之前需要用户自己象该空*/
|
||||
/* 间填充显示数据, 用该函数得到显示表面的地址然后用Disp_HelpDrawFill来填充它 */
|
||||
/* hShow : 显示部件句柄 */
|
||||
/* pLength : 调用返回时返回显示表面缓冲区的长度 */
|
||||
/* bShow : 希望得到Draw方式还是Show方式的显示表面缓冲区 */
|
||||
/* 返回值 : 返回显示表面缓冲区指针 */
|
||||
MVVGA PVOID WINAPI Disp_HelpBuffer( HANDLE hShow, PULONG pLength, BOOL bShow );
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 帮助函数, 帮助象显示表面缓冲区填充要显示的数据,内部实际为memcpy */
|
||||
/* hShow : 显示句柄 */
|
||||
/* pImage : 显示内容 */
|
||||
MVVGA VOID WINAPI Disp_HelpDrawFill( HANDLE hShow, PVOID pImage );
|
||||
|
||||
/*******************************************************************************************/
|
||||
// 描述 : 帮助函数, 在使用Draw时可以叠加字符串,用该帮助函数设置显示时字体的颜色 */
|
||||
// hShow : 显示句柄 */
|
||||
// R/G/B : R分量/G分量/B分量 */
|
||||
MVVGA VOID WINAPI Disp_HelpDrawTextColor( HANDLE hShow, UCHAR R, UCHAR G, UCHAR B );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 帮助函数, 在使用Draw时可以叠加字符串,用该帮助函数设置显示时字体格式, 该函数 */
|
||||
/* 被调用时将弹出Windows字体选择对话框 */
|
||||
/* hShow : 显示句柄 */
|
||||
MVVGA VOID WINAPI Disp_HelpDrawTextFormat( HANDLE hShow );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 帮助函数, 在使用Draw时可以叠加点/线/弧/圆/字串,用该帮助函数设置画线的宽度/ */
|
||||
/* 样式和颜色 */
|
||||
/* hShow : 显示句柄 */
|
||||
/* Style : 画笔风格 */
|
||||
/* Width : 画笔宽度 */
|
||||
/* R/G/B : R分量/G分量/B分量 */
|
||||
MVVGA VOID WINAPI Disp_HelpDrawPen( HANDLE hShow, PEN_STYLE Style, int Width, UCHAR R,
|
||||
UCHAR G, UCHAR B );
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////// MVVGA 文 件 部 件 //////////////////////////////////////
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 创建文件部件,可创建任意多个.用来将图像存为Raw/JPG/BMP文件 */
|
||||
/* FileName : 包含路径的文件名字串 */
|
||||
/* High,Width: 要存图像的高和宽 */
|
||||
/* nColor : 要存图像的像素位宽32/24/16/8 */
|
||||
/* bFlip : 存储时是否上下翻转,注意Windows中BMP图像在显示和存放时是上下颠倒的 */
|
||||
/* bColor : 存储为JPG文件时是否将颜色去掉 */
|
||||
/* Quality : 存储为JPG文件时的压缩质量1- 100 */
|
||||
/* 返回值 : 返回创建的文件部件句柄 */
|
||||
MVVGA HANDLE WINAPI File_Create( PCHAR FileName, ULONG High, ULONG Width, ULONG nColor,
|
||||
BOOL bFlip, BOOL bColor, ULONG Quality );
|
||||
MVVGA VOID WINAPI File_Destroy( HANDLE hFile ); // 释放创建的文件部件
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 写为Raw/Bmp/Jpg文件 */
|
||||
/* hFile : 文件部件句柄 */
|
||||
/* pData : 要存图像的缓冲区指针 */
|
||||
/* nImage : pData中存在几幅图像 */
|
||||
MVVGA VOID WINAPI File_WriteRaw( HANDLE hFile, PUCHAR pData, ULONG nImage ); // 写为文件Raw
|
||||
MVVGA VOID WINAPI File_WriteBmp( HANDLE hFile, PUCHAR pData, ULONG nImage ); // 写为Bmp文件
|
||||
MVVGA VOID WINAPI File_WriteJpg( HANDLE hFile, PUCHAR pData, ULONG nImage ); // 写为Jpg文件
|
||||
|
||||
MVVGA VOID WINAPI VGA_ToBmp( PCHAR FileName, ULONG High, ULONG Width, ULONG nColor, PUCHAR pData, BOOL bFlip );
|
||||
MVVGA VOID WINAPI VGA_ToJpeg( PCHAR FileName, ULONG High, ULONG Width, ULONG nColor, PUCHAR pData, BOOL bFlip, BOOL bColor, ULONG Quality );
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
////////////////////////////////// MVVGA AVI 文 件 部 件 ////////////////////////////////////
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 创建AVI文件部件,可选择压缩或不压缩,可创建任意多个.可将创建的监控部件句柄 */
|
||||
/* 用Cap_SetPropery(hCap,DEV_AVI, (ULONG)hAvi)来嵌入到设备中, 强烈不建议这样做 */
|
||||
/* 但如果你能保证AVIStream_Write占用的时间小于设备桢回调的时间(要压缩, 且CPU够)*/
|
||||
/* 强大,或用Raid双速系统)用迁入的方法将是首选的方法 */
|
||||
/* bUpDown : 存储时是否上下翻转 */
|
||||
/* High,Width: 要存图像的高和宽 */
|
||||
/* nColor : 要存图像的像素位宽32/24/16/8 */
|
||||
/* 返回值 : 返回创建的文件部件句柄 */
|
||||
MVVGA HANDLE WINAPI AVIStream_Create( BOOL bUpDown, ULONG High, ULONG Width, ULONG nColor );
|
||||
// 注意: 在调用AVIStream_Destroy之前为保险要用Cap_SetPropery( hCap, DEV_AVI, NULL );
|
||||
MVVGA VOID WINAPI AVIStream_Destroy( HANDLE hAvi ); // 释放创建的文件部件
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 开始写AVI文件,在这之后的每一次对AVIStream_Write的调用都将向AVI文件中写入一 */
|
||||
/* 桢图像 */
|
||||
/* hAvi : Avi文件部件句柄 */
|
||||
/* FileName : 包含路径的文件名字串 */
|
||||
/* dwRate : 写Avi文件的桢速率 */
|
||||
/* 返回值 : TRUE成功; FALSE失败 */
|
||||
MVVGA BOOL WINAPI AVIStream_StartAviStream( HANDLE hAvi, char* FileName, ULONG dwRate );
|
||||
MVVGA VOID WINAPI AVIStream_StopAviStream( HANDLE hAvi ); // 停止写AVI文件
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 开始写AVI文件之前可以用该函数选择是否使用压缩器,选择的压缩器是今后默认的, */
|
||||
/* 直到用该函数又进行其它的选择. */
|
||||
/* hAvi : Avi文件部件句柄 */
|
||||
MVVGA VOID WINAPI AVIStream_Select( HANDLE hAvi );
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 写AVI文件的主工作函数,它将你按照之前设置的方式工作,每调一次写入一桢图像 */
|
||||
/* 如果你在创建hAvi之后将hAvi嵌入到MVVGA设备部件中则你不需调用该函数 */
|
||||
/* hAvi : Avi文件部件句柄 */
|
||||
/* pData : 图像数据指针 */
|
||||
MVVGA BOOL WINAPI AVIStream_Write( HANDLE hAvi, PUCHAR pData );
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////// MVVGA 很 少 使 用 的 文 件 部 件 //////////////////////////////
|
||||
/*******************************************************************************************/
|
||||
MVVGA HANDLE WINAPI RawStream_Create();
|
||||
MVVGA VOID WINAPI RawStream_Destroy( HANDLE hRaw );
|
||||
MVVGA VOID WINAPI RawStream_Stop( HANDLE hRaw );
|
||||
MVVGA BOOL WINAPI RawStream_New( HANDLE hRaw, ULONG High, ULONG Width, ULONG nColor,
|
||||
char* FileName );
|
||||
MVVGA ULONG WINAPI RawStream_Open( HANDLE hRaw, PULONG High, PULONG Width, PULONG nColor,
|
||||
char* FileName );
|
||||
MVVGA ULONG WINAPI RawStream_Read( HANDLE hRaw, ULONG ImageIndex, PUCHAR pData );
|
||||
MVVGA VOID WINAPI RawStream_Write( HANDLE hRaw, PUCHAR pData );
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////// MVVGA 缩 放 部 件 //////////////////////////////////////
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 创建MVVGA的缩放部件. 可以创建任意个该部件, 可进行按照不同的缩放质量缩放 */
|
||||
/* nColor : 图像的像素位宽 */
|
||||
/* High,Width: 图像原始的高度宽度 */
|
||||
/* DecsHigh : 图像被缩放后高度 */
|
||||
/* DecsWidth : 图像被缩放后宽度 */
|
||||
/* Quality : 缩放的质量,有四级显示质量: {0, 1, 2, 3} */
|
||||
/* 返回值 : 返回创建的缩放部件句柄 */
|
||||
MVVGA HANDLE WINAPI Stretch_Create( ULONG nColor, ULONG High, ULONG Width, ULONG DecsHigh,
|
||||
ULONG DecsWidth, ULONG Quality );
|
||||
MVVGA VOID WINAPI Stretch_Destroy( HANDLE hStretch ); // 释放创建的缩放部件
|
||||
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 快速的2x2抽点抽行法缩放,图像高宽为原来的一半 */
|
||||
/* hStretch : 缩放部件句柄 */
|
||||
/* pIn : 输入图像缓冲区指针 */
|
||||
/* pOut : 输出图像缓冲区指针 */
|
||||
MVVGA VOID WINAPI Stretch_Half( HANDLE hStretch, PUCHAR pIn, PUCHAR pOut );
|
||||
/*******************************************************************************************/
|
||||
/* 描述 : 快速的2x2抽点抽行法缩放,图像高宽为原来的一半 */
|
||||
/* hStretch : 缩放部件句柄 */
|
||||
/* pIn : 输入图像缓冲区指针 */
|
||||
/* 返回值 : 返回被缩放的图像缓冲区指针 */
|
||||
MVVGA PVOID WINAPI Stretch_Do( HANDLE hStretch, PUCHAR pIn );
|
||||
|
||||
//目前支持RGB24和RGB32
|
||||
MVVGA VOID WINAPI Rotate_Hflip(PUCHAR pIn, PUCHAR pOut,ULONG nColor, ULONG High, ULONG Width);
|
||||
MVVGA VOID WINAPI Rotate_Ang90(PUCHAR pIn, PUCHAR pOut,ULONG nColor, ULONG High, ULONG Width);
|
||||
MVVGA VOID WINAPI Rotate_Ang180(PUCHAR pIn, PUCHAR pOut,ULONG nColor, ULONG High, ULONG Width);
|
||||
MVVGA VOID WINAPI Rotate_Ang270(PUCHAR pIn, PUCHAR pOut,ULONG nColor, ULONG High, ULONG Width);
|
||||
|
||||
#endif //__MVVGA_H__
|
||||
Binary file not shown.
Reference in New Issue
Block a user