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

 

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

 

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

 

   

                        采集被覆盖的窗口技术

作者:李敏正(原创)

 

主要功能:

  

        1、采集屏幕

        2、采集窗口

        3、采集被其它窗口覆盖的窗口

        4、采集移出屏幕外的窗口

        5、实现两个窗口数据的mix混合

 

格式支持:

        1、图像格式:bmpjpggiftiffpngpsdtga

        2、视频格式:wmvAVIflvmp4

 

 

本软件提供两种接口方式,一种是命令行的使用方式,一种是直接提供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:视频帧率

Examplescreensnap.exe " hDes hSrc Key desFileName x y fps"

 

采集图片:
hDes:窗口句柄

hSrc:窗口句柄,如果要两个窗口mix,那么这个窗口是覆盖在上面的窗口,需要指定色键key

Key:指定hSrc窗口的色键

desFileName:目标文件名(文件类型指示了要采集成的类型)

X:图像x大小(单位是像素)

Y:图像y大小(单位是像素)

Fps:每秒钟采集多少张图片

Examplescreensnap.exe " hDes hSrc Key desFileName x y fps"

 

停止采集:

 

Examplescreensnap.exe stop

技术实现原理分析:(待续)

 

 我想把代码和dll、exe放上来,我该如何做呢?

 

 

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值