React-native - Как открыть изображение из пути к файлу в Objective-C - PullRequest
0 голосов
/ 07 января 2019

Вопрос

У меня есть функциональность приложения, которая проверяет, размыта ли фотография. Теперь я следовал этому уроку: Урок

Этот туториал берет представление base64 изображения и передает его собственной функции.

RCT_EXPORT_METHOD(checkForBlurryImage:(NSString *)imageAsBase64 callback:(RCTResponseSenderBlock)callback){...}

Но, как вы знаете, base64 для больших изображений работает довольно медленно. Я хотел бы передать путь к файлу, в котором сохранено изображение, а затем открыть его в Objectve-C. Я предполагаю, что таким образом время обработки будет быстрее при значительно меньших затратах.

Я попытался реализовать это следующим образом:

RCT_EXPORT_METHOD(checkForBlurryImage2:(NSString *)imagePath callback: (RCTResponseSenderBlock)callback){

  UIImage *image = [UIImage imageWithContentsOfFile:imagePath];
  ...
 }

Я использовал встроенную функцию API UIImage imageWithContentsOfFile, которая считывает изображение из файловой системы.

Задача

Проблема в том, что когда верхняя функция возвращает nil. В документации говорится, что nil возвращается, если путь неверен или изображение не может быть открыто.

Путь, который я обычно получаю от камеры, выглядит следующим образом:

Файл: ///var/mobile/Containers/Data/Application/FD0CBDBA-8B59-4618-B1A8-006FA4D33901/Library/Caches/Camera/804062B5-896F-4AAF-A35F-4F10A648B916.jpg

Как правильно открыть изображение из пути к файлу?

1 Ответ

0 голосов
/ 07 января 2019

file:///var/mobile/Containers/Data/Application/FD0CBDBA-8B59-4618-B1A8-006FA4D33901/Library/Caches/Camera/804062B5-896F-4AAF-A35F-4F10A648B916.jpg - это URL-адрес файла в строке, а не путь к файлу.

Чтобы получить путь к файлу из строки URL файла, создайте объект URL из строки URL, а затем получите путь к URL.

RCT_EXPORT_METHOD(checkForBlurryImage2:(NSString *)URLString callback: (RCTResponseSenderBlock)callback){
    NSURL* URL = [NSURL URLWithString:URLString];
    UIImage *image = [UIImage imageWithContentsOfFile:URL.path];
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...