ios - 如何转换 std::vector使用 C++ 文件 iOS 项目时到 NSData
问题描述
在 iOS 项目中使用 C++ 文件执行算法时,我遇到了一个函数返回 jpeg 图像的 std::vector 数据的问题。
我一直在寻找如何从std::vector< uchar >转换为NSData并将其转换为UIImage的特定问题。
但不幸的是,经过大量试验和错误,我发现没有一个解决方案,我与这个问题一起发布。
解决方案
要理解std::vector< uchar >是一个字节数组。
要将其转换为 NSData 我们需要使用以下方法
这里getFrontFaceJPEG()是一个 C++ 函数,它以std::vector< uchar >的形式返回 Jpeg 数据
std::vector<uchar> vectorImg = img.getFrontFaceJPEG();
一旦它返回std::vector< uchar >我们需要使用以下方法 将其转换为NSData :
NSData * imgData = [[NSData alloc] initWithBytesNoCopy:vectorImg.data() length:vectorImg.size() freeWhenDone:false];
最后你可以转换为 UIImage
UIImage *resultimage = [UIImage imageWithData:imgData];
推荐阅读
- amazon-web-services - AWS Cross Account billing alerts
- postgresql - 两列中的Postgres不同查询
- php - Use Twig in Wordpress plugin , but clashes with WPML
- html - 在较小的屏幕上修复图像尺寸 - 图像缩小得太小
- reactjs - 带反应的中继器
- regex - 使用正则表达式从 Pandas 列中的集合中搜索关键字/短语
- javascript - 反应,三元运算符无法正常工作
- vue.js - 在“vue2-dropzone”中找不到导出“vue2Dropzone”
- jquery - 使 HTML5 视频的持续时间指示器向上计数而不是向下计数
- php - 如何从查询生成器 Laravel 中的不同表中选择一个值