gpt4 book ai didi

cocoa - 来自 CVImageBuffer 的原始数据没有渲染?

转载 作者:行者123 更新时间:2023-11-28 21:40:40 24 4
gpt4 key购买 nike

我正在从我的 AVCaptureSession 中获取一个 CVImageBufferRef,我想获取该图像缓冲区并通过网络上传它。为了节省空间和时间,我想在不将图像渲染成 CIImage 和 NSBitmapImage 的情况下执行此操作,这是我在任何地方都见过的解决方案(如此处:How can I obtain raw data from a CVImageBuffer object)。

这是因为我的印象是 CVImageBuffer 可能被压缩了,这对我来说很棒,如果我渲染它,我必须将它解压成一个完整的位图,然后上传整个位图。我想获取压缩数据(意识到单个压缩帧以后可能无法单独渲染)就像它位于 CVImageBuffer 中一样。我认为这意味着我想要 CVImageBuffer 的基本数据指针及其长度,但似乎没有办法在 API 中获取它。有人有什么想法吗?

最佳答案

CVImageBuffer 本身就是一个抽象类型。您的图像应该是 CVPixelBuffer、CVOpenGLBuffer 或 CVOpenGLTexture 的实例。这些类型的文档列出了可用于访问数据的函数。

使用 GetTypeID 方法来判断您使用的是哪种类型:

CVImageBufferRef image = …;
CFTypeID imageType = CFGetTypeID(image);

if (imageType == CVPixelBufferGetTypeID()) {
// Pixel Data
}
else if (imageType == CVOpenGLBufferGetTypeID()) {
// OpenGL pbuffer
}
else if (imageType == CVOpenGLTextureGetTypeID()) {
// OpenGL Texture
}

关于cocoa - 来自 CVImageBuffer 的原始数据没有渲染?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com