使用 C++ 文件 iOS 项目时如何将 std::vector<uchar> 转换为 NSData
How to convert std::vector<uchar> to NSData when using C++ file iOS project
在 iOS 项目中使用 C++ 文件执行算法时,我遇到了一个问题,函数 returns std::vector jpeg 图像数据。
我一直在寻找如何从 std::vector< uchar > 转换为 NSData 并转换的特定问题它到 UIImage.
但不幸的是 none 经过大量的反复试验,我发现了一个解决方案,我将其与这个问题一起发布。
理解std::vector 是字节数组
要将其转换为 NSData,我们需要使用以下方法
这里getFrontFaceJPEG()是一个C++函数,returnsJpeg数据以std::vector< uchar >
std::vector<uchar> vectorImg = img.getFrontFaceJPEG();
一旦它 returns std::vector< uchar > 我们需要将它转换为 NSData 使用以下方法:
NSData * imgData = [[NSData alloc] initWithBytesNoCopy:vectorImg.data() length:vectorImg.size() freeWhenDone:false];
终于可以转UIImage了UIImage *resultimage = [UIImage imageWithData:imgData];
在 iOS 项目中使用 C++ 文件执行算法时,我遇到了一个问题,函数 returns std::vector jpeg 图像数据。
我一直在寻找如何从 std::vector< uchar > 转换为 NSData 并转换的特定问题它到 UIImage.
但不幸的是 none 经过大量的反复试验,我发现了一个解决方案,我将其与这个问题一起发布。
理解std::vector
要将其转换为 NSData,我们需要使用以下方法
这里getFrontFaceJPEG()是一个C++函数,returnsJpeg数据以std::vector< uchar >
std::vector<uchar> vectorImg = img.getFrontFaceJPEG();
一旦它 returns std::vector< uchar > 我们需要将它转换为 NSData 使用以下方法:
NSData * imgData = [[NSData alloc] initWithBytesNoCopy:vectorImg.data() length:vectorImg.size() freeWhenDone:false];
终于可以转UIImage了
UIImage *resultimage = [UIImage imageWithData:imgData];