您的位置:首页 > 其它

实现录制窗口成各种格式的图片和视频格式

2009-06-17 23:49 316 查看
 

   关键词:采集屏幕、采集窗口、录制屏幕、录制窗口、采集被覆盖的窗口

 

   最近实现了一个可以采集每个窗口成各种格式的图片或视频的程序。在这里给大家分享一下。今天很晚了,明天有时间继续慢慢写出来。总之,以后会慢慢在这弄一些工作学习心得出来。不期望掌声,也不希望有骂声。

 

   

                        采集被覆盖的窗口技术
作者:李敏正(原创)
 
主要功能:
  
        1、采集屏幕
        2、采集窗口
        3、采集被其它窗口覆盖的窗口
        4、采集移出屏幕外的窗口
        5、实现两个窗口数据的mix混合
 
格式支持:
        1、图像格式:bmp、jpg、gif、tiff、png、psd、tga
        2、视频格式:wmv、AVI、flv、mp4
 
 
本软件提供两种接口方式,一种是命令行的使用方式,一种是直接提供dll和.h.

Dll提供的接口定义:
开始采集成视频启动接口,此函数是异步函数
参数说明:
hDes:窗口句柄
hSrc:窗口句柄,如果要两个窗口mix,那么这个窗口是覆盖在上面的窗口,需要指定色键key
Key:指定hSrc窗口的色键
desFileName:目标文件名
X:视频图像x大小(单位是像素)
Y:视频图像y大小(单位是像素)
Fps:视频帧率
pFunc:采集状态通知接口,可以根据需要实现(typedef BOOL (*Notefy)(bool );)
extern   "C"   SCREEN2WMV_API int StartRecord(long hDes, long hSrc, int key,TCHAR*  desFileName, int x, int y, int fps, void* pFunc);
 
开始采集图像启动接口:
hDes:窗口句柄
hSrc:窗口句柄,如果要两个窗口mix,那么这个窗口是覆盖在上面的窗口,需要指定色键key
Key:指定hSrc窗口的色键
desFileName:目标文件名(文件类型指示了要采集成的类型)
X:图像x大小(单位是像素)
Y:图像y大小(单位是像素)
Fps:每秒钟采集多少张图片
pFunc:采集状态通知接口,可以根据需要实现(typedef BOOL (*Notefy)(bool );)

extern   "C"   SCREEN2WMV_API int StartRecord(long hDes, long hSrc, int key,TCHAR*  desFileName, int x, int y, int fps, void* pFunc);
                       
 
停止采集接口:
此函数没有参数,是异步函数。
extern   "C"   SCREEN2WMV_API int StopRecord();

命令行使用方式:
提供命令行的方式是为了方便使用,在使用的时候只要把两个窗口的句柄找到(可以用微软的spy++那个工具),然后在命令行中传进相关的参数就可以工作了。
 
命令行参数:
 
采集视频:
hDes:窗口句柄
hSrc:窗口句柄,如果要两个窗口mix,那么这个窗口是覆盖在上面的窗口,需要指定色键key
Key:指定hSrc窗口的色键
desFileName:目标文件名
X:视频图像x大小(单位是像素)
Y:视频图像y大小(单位是像素)
Fps:视频帧率

Example:screensnap.exe " hDes hSrc Key desFileName x y fps"
 
采集图片:
hDes:窗口句柄
hSrc:窗口句柄,如果要两个窗口mix,那么这个窗口是覆盖在上面的窗口,需要指定色键key
Key:指定hSrc窗口的色键
desFileName:目标文件名(文件类型指示了要采集成的类型)
X:图像x大小(单位是像素)
Y:图像y大小(单位是像素)
Fps:每秒钟采集多少张图片

Example:screensnap.exe " hDes hSrc Key desFileName x y fps"
 
停止采集:
 
Example:screensnap.exe stop

技术实现原理分析:(待续)
 
 我想把代码和dll、exe放上来,我该如何做呢?
 
 
        
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tiff dll flv 工作 exe avi
相关文章推荐