菜鸟学ffmpeg音视频技术之9 mac截取进程图像

前面介绍了mac系统如何截取窗口和屏幕,有时我们可能想截取的是一个进程的图像。

我这里采用的方法是:截取进程主窗口的图片,然后将该进程的其他独立窗口截出来,然后绘制在主窗口图片之上。这里跟windows一样,使用GDI截图只能截取直接子窗口的图片,如果子窗口是独立窗口是截不进去的需要绘制。

1.获取主窗口图片

//mainwindow
    if( 0 == _main_record_window.Handle)
    {
        std::string mainrecordname;
        for(int i=0; i< windows.size(); ++i)
        {
            if(windows.at(i).main_record_window)
            {
                _main_record_window = getWindow(std::string(windows.at(i).name));
                break;
            }
        }
    }
    if(0 == _main_record_window.Handle)
        return false;
    CGImageRef mainimageRef = CGWindowListCreateImage(CGRectNull, kCGWindowListOptionIncludingWindow, _main_record_window.Handle, kCGWindowImageNominalResolution | kCGWindowImageShouldBeOpaque);

2.获取独立子窗口图片


    //child poppup window

    for(int i =0 ; i<windows.size(); ++i)
    {
        if(windows.at(i).main_reco
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值