YUV格式初探(一)---ffmpeg解码之后的NV12格式进行裁剪

将ffmpeg解码视频出来的NV12格式的视频帧进行裁剪,

亲测可用。

/*
函数功能:
    通过操作像素对NV12格式的一帧图片进行剪切

*/
int rkNV12_cut_nv12(unsigned char * srcImage, int srcW, int srcH, 
                   unsigned char *destImage, int dstw, int dsth){

    int dst_size = dstw * dsth; // 新分辨率像素总数 
    int src_size = srcW * srcH; // 旧分辨率像素总数
    int y_dst_size = dst_size;    // Y 分量总数 = 总数
    int i = 0; //表示新分辨率 像素 个数
    int j = 0; //表示旧分辨率 像素 个数
    int line_n = 0; // 表示此时的行数
    int exce_W = srcW - dstw; // 图片对于的像素宽度

    //剪切Y分量

    line_n = dsth ;
            
    for(i =0; i < line_n; i++ ){        
        memcpy(&(destImage[i*dstw]), (srcImage + i*srcW ),dstw);
    }    

    //剪切UV分量
    for(i =0; i < line_n/2; i++ ){        
        memcpy(&(destImage[i*dstw + dst_size]), (srcImage + i*srcW + src_size),dstw);
    } 
    return 0;
}

 

你可能感兴趣的:(YUV_RGB相关)