反应本机,目标C返回nil whit initwithbase64encodedstring
我正在尝试将来自React天然到目标C的Base64映像衡量,以便在OPENCV的帮助下检索图像的数据像素。
但是,使用initwithbase64encodedString
时,每个基本64映像返回nil。 我已经尝试了有关此问题的多个答案,但没有任何作用。
base64来自React Native中ImagePicker的结果,
ImagePicker.launchImageLibrary({...})
这是目标C中使用的代码:
RCT_EXPORT_METHOD(getImagePixels:(NSString *)imageAsBase64 callback:(RCTResponseSenderBlock)callback)
{
NSUInteger paddedLength = imageAsBase64.length + ((4 - (imageAsBase64.length % 4)) % 4);
NSString *correctBase64String = [imageAsBase64 stringByPaddingToLength:paddedLength withString:@"=" startingAtIndex:0];
/* Here decodedData always nil */
NSData *decodedData = [[NSData alloc]initWithBase64EncodedString:correctBase64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *image = [UIImage imageWithData:decodedData];
cv::Mat imageMat;
cv::Mat imageMatRGBA;
UIImageToMat(image, imageMat);
cv::cvtColor(imageMat, imageMatRGBA, cv::COLOR_BGR2RGBA);
cv::Mat Image8bit;
imageMat.convertTo(Image8bit, CV_8UC1);
unsigned char *pixelsChar = Image8bit.data;
NSString *pixels = [NSString stringWithUTF8String:(char *)pixelsChar];
callback(@[[NSNull null], pixels]);
}
I'm trying to passe base64 images from react native to objective c so that I can retrieve image's data pixels with the help of openCV.
However, each base64 image return nil when using initWithBase64EncodedString
.
I have tried multiple answer regarding this issue but none worked.
The Base64 comes from the result of ImagePicker in React Native
ImagePicker.launchImageLibrary({...})
here is the code used in Objective C :
RCT_EXPORT_METHOD(getImagePixels:(NSString *)imageAsBase64 callback:(RCTResponseSenderBlock)callback)
{
NSUInteger paddedLength = imageAsBase64.length + ((4 - (imageAsBase64.length % 4)) % 4);
NSString *correctBase64String = [imageAsBase64 stringByPaddingToLength:paddedLength withString:@"=" startingAtIndex:0];
/* Here decodedData always nil */
NSData *decodedData = [[NSData alloc]initWithBase64EncodedString:correctBase64String options:NSDataBase64DecodingIgnoreUnknownCharacters];
UIImage *image = [UIImage imageWithData:decodedData];
cv::Mat imageMat;
cv::Mat imageMatRGBA;
UIImageToMat(image, imageMat);
cv::cvtColor(imageMat, imageMatRGBA, cv::COLOR_BGR2RGBA);
cv::Mat Image8bit;
imageMat.convertTo(Image8bit, CV_8UC1);
unsigned char *pixelsChar = Image8bit.data;
NSString *pixels = [NSString stringWithUTF8String:(char *)pixelsChar];
callback(@[[NSNull null], pixels]);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论