关于osdbuffer 定向截取缓存的算法
如下图,要在1920*1080的分辨率屏幕下截取起始坐标为50,100宽度为100,高度为50的缓冲区buffer。
像素为2个,自左而右,自上而下。
算法
int CutOsdBuf(int start_h,int start_w,int window_w,int window_h,unsigned char *buffin,unsigned char *buffout)
{
unsigned char tempbuf[1920*1080*3];
int i=0;
memcpy(tempbuf,buffin,window_h*window_w*2);
for(i=0;i<window_h;i++)
{
memcpy(buffout+1920*2*(start_h+i)+start_w*2,tempbuf+window_w*2*i,window_w*2); }
}
|
80 |
100 |
1920 |
1080 |