gpt4 book ai didi

c++ - 使用 C++ 和 Objective C 从原始图像复制数据

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

我从一个库收到一个回调,给我一个 640*480*4 R8G8B8A8 的原始图像

我确实将它复制到另一个缓冲区,然后我尝试跳过第 4 个缓冲区,因为我的框架仅适用于 R8G8B8

我试图调试并查看变量 d 中的字节,但这些字节都是垃圾。

-(void)onRawImageBuffer:(NSData * _Nonnull)data withWidth:(int)width andHeight:(int)height andBytesPerPixel:(int)bytesPerPixel;
{
NSUInteger len = [data length];



memcpy(m_CopyData, [data bytes], len);


for(int i =0; i < 640*480*3;i++)
{
if ( i%4 == 3 )
continue;
else{
m_FrameData[i] = m_CopyData[i];

}
}

NSData* d = [NSData dataWithBytes:(const void *)m_FrameData length:640*480*3];


Input::SensorInput::getSingleton()->setVideoData( m_FrameData );



}

最佳答案

  1. 您正在对宽度和高度进行硬编码;
  2. 您的循环仍必须转到 width * height * 4
  3. 您还没有分配m_FrameData
  4. 您没有考虑bytesPerPixel
  5. continue; 仍然将i 提前一个,你必须使用两个索引;
  6. 效率很低,最好将 RGB 一起复制,跳过 A,将 src 指针前进 4,dst 指针前进 3。

关于c++ - 使用 C++ 和 Objective C 从原始图像复制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46051522/

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