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;
}
目录
相关文章
|
3天前
Fireworks将裁剪区域导出的技巧
Fireworks将裁剪区域导出的技巧
UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
UE虚幻引擎 UTextBlock UMG文本控件超过边界区域以后显示省略号
198 0
|
存储 内存技术
屏幕为黑色yuv值怎么设置
屏幕为黑色yuv值怎么设置
277 0
ggpattern包-基于几何图案或图像的自定义填充
平时我们做柱状图或饼图都会用彩色进行填充,但是文章有时候为了节约成本采用黑白印刷时候,图形一般都会做成各种阴影线条填充模式来进行区分(如下图),R中的ggpattern包刚好可以满足了我们的需求,若有需要就来学习下吧~
291 0
【IMAQ】imaqCopyRect() 复制矩形区域
【IMAQ】imaqCopyRect() 复制矩形区域
|
定位技术
egret纹理填充模式(上下填充)
egret纹理填充模式(上下填充)
egret纹理填充模式(上下填充)
NV12剪切区域时的对齐代码
NV12剪切区域时的对齐代码
95 0
|
Java
剪裁NV21任意一部分的代码
剪裁NV21任意一部分的代码
122 0
146.矩形区域的颜色填充
146.矩形区域的颜色填充
76 0