NV12剪切区域时的对齐代码

简介: NV12剪切区域时的对齐代码

如果没有对齐,底边有时颜色会有点问题(比如绿色)。


 所以专门写了代码进行对齐。


#define NV12_PACK 2
//如果没有对齐,NV12无法生成JPG,或者底边颜色异常。对齐时要避免剪切区域变小。
int clipNv12Pack(int* pnClipLeft, int* pnClipTop, int* pnClipWidth, int* pnClipHeight)
{
    const int clipLeft  = *pnClipLeft;
    const int clipTop   = *pnClipTop;
    const int clipWidth = *pnClipWidth;
    const int clipHeight= *pnClipHeight;
    if (*pnClipLeft % NV12_PACK != 0)
    {
        *pnClipLeft  = clipLeft/NV12_PACK*NV12_PACK;
        *pnClipWidth = clipWidth+(clipLeft-*pnClipLeft);
    }
    *pnClipWidth  = (*pnClipWidth+NV12_PACK-1)/NV12_PACK*NV12_PACK;
    if (*pnClipTop % NV12_PACK != 0)
    {
        *pnClipTop   = clipTop/NV12_PACK*NV12_PACK;
        *pnClipHeight= clipHeight+(clipTop-*pnClipTop);
    }
    *pnClipHeight = (*pnClipHeight+NV12_PACK-1)/NV12_PACK*NV12_PACK;
    return 0;
}
目录
相关文章
|
12天前
|
API
(4)Qt中的位置和尺寸
本文介绍了Qt中用于处理位置和尺寸的四个核心类:QPoint、QLine、QSize和QRect,包括它们的常用API和一些基本使用示例。
28 0
(4)Qt中的位置和尺寸
Electron标题栏位置异常偏移
electron窗口中明明设置了标题栏偏移,但是在部分mac电脑上出现未达到指定位置效果问题。
100 0
UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
183 0
|
5月前
|
前端开发 JavaScript
改变光标形状的多种方式
改变光标形状的多种方式
|
5月前
如何在屏幕的任意位置拖拽控制图片的移动?
如何在屏幕的任意位置拖拽控制图片的移动?
87 1
|
编解码 前端开发 PHP
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
154 0
用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形
118 0
【IMAQ】imaqCopyRect() 复制矩形区域
【IMAQ】imaqCopyRect() 复制矩形区域
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
|
Java
剪裁NV21任意一部分的代码
剪裁NV21任意一部分的代码
121 0