4

在我在 Xcode 中实现RCTBridgeModule协议的类中,我正在尝试编写一个RCT_EXPORT_MEATHOD可以暴露给 React Native 代码以使用图像数据的方法。目前,我可以在 React Native 中将图像写入磁盘,然后将路径传递给 native 方法,但我想知道是否有更好的技术直接传递图像数据以获得更好的性能?

所以代替这个:

RCT_EXPORT_METHOD(scanImage:(NSString *)path) {
  UIImage *sampleImage = [[UIImage alloc] initWithContentsOfFile:path];  
  [self processImage: UIImage];
}

更像这样的东西:

RCT_EXPORT_METHOD(scanImage:(NSData *)imageData) {
  [self processImageWithData: imageData];
}
4

2 回答 2

0

对我来说,这有效:

  NSURL *url = [NSURL URLWithString:[imagePath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]];
  UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:url]];

imagePathisNSString来自 react-native 桥(使用react-native-image-picker' 响应 - response.uri)。

于 2019-02-13T14:10:49.013 回答
0

您可以使用[RCTConvert UIImage:icon]方法从#import <React/RCTConvert.h>

您需要将“模式”指定为“数据”。有关更多详细信息,请查看以下源代码: https ://github.com/facebook/react-native/blob/master/React/Base/RCTConvert.m#L762

于 2017-06-30T13:22:11.963 回答