前面使用dshow获取到了屏幕的截图,并且转换成了yuv420格式。、

现在需要能获取截图的部分区域。 本来打算在dshow获取截图的时候直接裁剪获得某个区域的rgb图像,但发现这样做,有时候成功不了。

因此只能选择获取完整的屏幕截图,转换成yuv后再进行裁剪:

YUV420裁剪代码如下:




#include "yuvcut.h"

#include



YuvCut::YuvCut()
{

}


void YuvCut::Yuv420Cut(int x,int y,int desW,int desH,int srcW,int srcH,uint8_t *srcBuffer,uint8_t *desBuffer)
{
int tmpRange;
int bufferIndex;

int yIndex = 0;
bufferIndex = 0 + x + y*srcW;
tmpRange = srcW * desH;
for (int i=0;i