ios - CVPixelBufferGetWidth(pixelbuffer) 和 CVPixelBufferGetWidthOfPlane(pixelbuffer, 0) 有什么区别?
问题描述
CVPixelBufferGetWidth(pixelbuffer)
和和CVPixelBufferGetWidthOfPlane(pixelbuffer, 0)
之间 有什么区别吗?CVPixelBufferGetHeight(pixelbuffer)
CVPixelBufferGetHeightOfPlane(pixelbuffer, 0)
我搜索维基,它说:
As with most Y′UV formats, there are as many Y′ values as there are pixels.
它并没有说 y 的值对于所有格式都是相等的图像宽度。
因此,如果
CVPixelBufferGetWidth(pixelbuffer) == CVPixelBufferGetWidthOfPlane(pixelbuffer, 0)
和
CVPixelBufferGetHeight(pixelbuffer) == CVPixelBufferGetHeightOfPlane(pixelbuffer, 0)
解决方案
并非所有像素缓冲区都是平面的(也就是说,包含多个数据平面,就像 YUV 缓冲区的情况一样)。CVPixelBufferIsPlanar
在决定使用哪个函数查询宽度/高度之前,请检查您的是否是。(当然,如果您从始终是平面的源获取缓冲区,您可以安全地跳过该检查。)
请CVPixelBufferGetWidthOfPlane
注意,当传递非平面缓冲区时,它总是返回零。在这种情况下,返回值(对于平面 0)不应等于 的返回值CVPixelBufferGetWidth
。
推荐阅读
- kotlin - 使用 map 函数转换列表中的项目
- typescript - 我可以有一个带有输入参数指南的打字稿类构造函数吗?
- ios - 由于格式与预期的客户端密码不匹配,Stripe Apple Pay 崩溃
- python - 在 Python 中使用机器学习的离散事件概率
- javascript - 使用 Laravel PHP 上传 Reactjs 的图片
- javascript - 如何获取图像 Src 属性?
- flutter - 导航后 StreamBuilder 子更新不呈现
- mysql - 为什么 MySQL 使用了错误的索引?以及如何创建快速查询...而不需要所有可能的字段组合上的“覆盖索引”?
- javascript - 如何告诉 JetBrains IDE 这个 javascript 变量将类型更改为另一个?
- javascript - 动态生成的文件夹重定向到 htaccess 中的 Php 文件