NV12截图_js 截图

NV12截图_js 截图截图原理参考:从NV12中裁剪子画面注意事项这是源码://裁剪的坐标X和Y必须是偶数,否则UV和Y会有偏差,注意点,linesize对其为1intNV12CropTo420P(uint8_t*nv12data,intwidth,intheight,intcropx, intcropy,uint8_t*yuv420pdata,intdscw,intdsc…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

截图原理参考:

从NV12中裁剪子画面注意事项

这是源码:

//裁剪的坐标X和Y必须是偶数,否则UV和Y会有偏差, 注意点,linesize对其为1
int NV12CropTo420P(uint8_t *nv12data, int width, int height, int cropx,
		int cropy, uint8_t *yuv420pdata, int dscw, int dsch) { 
   
	uint8_t *ptry = yuv420pdata, *ptru, *ptrv;
	uint8_t *nvptr = nv12data + width * height;

	ptry = yuv420pdata;
	ptru = yuv420pdata + dscw * dsch; //u
	ptrv = yuv420pdata + dscw * dsch + (dscw * dsch) / 4; //v

	for (int y = cropy; y < dsch + cropy /*pFrame->height*/; y++) { 
   
		memcpy(ptry, nv12data + y * width + cropx, dscw);
		ptry += dscw;
	}

	for (int nvy = cropy / 2; nvy < dsch / 2 + cropy / 2 /*height / 2*/;
			nvy++) { 
   
		//-----w-----
		//Y Y Y Y
		//Y Y Y Y
		//Y Y Y Y
		//Y Y Y Y
		//U V U V
		//U V U V
		for (int nvx = cropx; nvx < dscw + cropx; nvx++) { 
   
			//如果目标是ffmpeg的avframe则需要注意的是linesize
			if (nvx % 2 == 0) { 
   
				*ptru++ = nvptr[nvy * width + nvx]; //u
			} else { 
   
				*ptrv++ = nvptr[nvy * width + nvx]; //v
			}
		}
	}
	return 0;
}

//—–w—–
//Y00 Y01 Y02 Y03
//Y10 Y11 Y12 Y13
//Y20 Y21 Y22 Y23
//Y30 Y31 Y32 Y33
//U00 V01 U02 V03
//U10 V11 U12 V13

YUV对应关系为:
Y00 Y01
Y10 Y11
U00 V01

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189706.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用基尔霍夫定律求解电路时_基尔霍夫定律总结

    用基尔霍夫定律求解电路时_基尔霍夫定律总结1.先了解几个名词(1)支路一个二端原件视为一条支路–图中6个二端原件所以有6条支路。(2)结点两条或以上的支路连接的点。d,e可以看做一个结点。(3).回路(4).网孔1,22,

    2022年8月1日
    0
  • Python新手进阶教程之1、海龟作图——用Python绘图(1)「建议收藏」

    Python新手进阶教程之1、海龟作图——用Python绘图(1)「建议收藏」1.1海龟的作用使用海龟作图,我们不仅能够只用几行代码就创建出令人影响深刻的视觉效果,而且还可以跟海龟看看几行代买如何影响到它的移动。者能够帮助我们理解代码的逻辑。1.2第一个海龟程序让我们使用海龟作图来编写第一个程序。在一个新的IDLE窗口中输入如下的代码并将其保存为Square.py#Square.py-画一个正方形importturtlet=turtle.Pen()foriinrange(100):t.forward(x)t.left(90)

    2022年6月28日
    29
  • PLSQL 使用教程

    PLSQL 使用教程1打开表打开PLSQL点击Objects在下拉列表中选中Myobjects找到Table下级目录中都是数据库的表2查看表的数据选中表,右击点击-查看数据/querydata弹出sql窗口,可以查看数据3查看表结构选中表,右击点击-查看/View…

    2022年5月2日
    51
  • 01背包问题回溯法_回溯法解决01背包问题时间复杂度

    01背包问题回溯法_回溯法解决01背包问题时间复杂度背景0-1背包是非常经典的算法问题,很多场景都可以抽象成这个问题模型。这个问题的经典解法是动态规划。不过还有一种简单但没有那么高效的解法,这里用的回溯算法。0-1背包问题有很多变体,我这里介绍一种比较基础的。我们有一个背包,背包总的承载重量是Wkg。现在我们有n个物品,每个物品的重量不等,并且不可分割。我们现在期望选择几件物品,装载到背包中。在不超过背包所能装载重量的前提下,如何让背包中…

    2022年10月8日
    0
  • java数组详解

    java数组详解1 数组概念同一种类型数据的集合。其实数组就是一个容器。数组的好处可以自动给数组中的元素从0开始编号,方便操作这些元素。格式1:元素类型[] 数组名 = new 元素类型[元素个数或数组长度];示例:int[] arr = new int[5];格式2:

    2022年6月2日
    23
  • rider 激活码【2021.10最新】

    (rider 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~23LN…

    2022年3月29日
    68

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号