YUV/RGB数据存储本地

static int flag =0;

FILE*fp;

static void dumpYuvPixelBuffer(CVPixelBufferRefpixelBuffer) {

    if(flag<10) {

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

        NSString*documentsDirectory = [pathsobjectAtIndex:0];

        NSString*filePath = [documentsDirectorystringByAppendingPathComponent:@"/hdrinput.yuv"];

        if(flag==0) {

            fp=fopen([filePathUTF8String],"wb+");

        }

        CVPixelBufferLockBaseAddress(pixelBuffer, 0);

        size_tcount =CVPixelBufferGetPlaneCount(pixelBuffer);

//        NSMutableData *data = [NSMutableData data];

        for(inti =0; i < count; i++) {

            size_twidth =CVPixelBufferGetWidthOfPlane(pixelBuffer, i);

            size_theight =CVPixelBufferGetHeightOfPlane(pixelBuffer, i);

            size_tbytesPerRow =CVPixelBufferGetBytesPerRowOfPlane(pixelBuffer, i);

            void* buf =CVPixelBufferGetBaseAddressOfPlane(pixelBuffer, i);

            //            NSData *Data = [NSData dataWithBytes:buf length:bytesPerRow * height];

            fwrite(buf,1, bytesPerRow * height,fp);

            fflush(fp);

            //            [data appendData:Data];

        }

//        [data writeToFile:filePath atomically:YES];

        CVPixelBufferUnlockBaseAddress(pixelBuffer, 0);

        flag+=1;

    }

  }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容