diff --git a/ios/ImageCropPicker.m b/ios/ImageCropPicker.m index 469f5f6d3..c7b12134b 100644 --- a/ios/ImageCropPicker.m +++ b/ios/ImageCropPicker.m @@ -449,13 +449,20 @@ - (void)qb_imagePickerController: requestImageDataForAsset:phAsset options:options resultHandler:^(NSData *imageData, NSString *dataUTI, UIImageOrientation orientation, NSDictionary *info) { - dispatch_async(dispatch_get_main_queue(), ^{ [lock lock]; ImageResult *imageResult; NSString *filePath; if (imageData) { - imageResult = [self.compression compressImage:[UIImage imageWithData:imageData] withOptions:self.options]; + UIImage *image; + if ([dataUTI isEqualToString:@"public.heif"] || [dataUTI isEqualToString:@"public.heic"]) { + CIImage *ciImage = [CIImage imageWithData:imageData]; + CIContext *context = [CIContext context]; + image = [UIImage imageWithData:[context JPEGRepresentationOfImage:ciImage colorSpace:ciImage.colorSpace options:@{}]]; + } else { + image = [UIImage imageWithData:imageData]; + } + imageResult = [self.compression compressImage:image withOptions:self.options]; filePath = [self persistFile:imageResult.data]; } @@ -697,3 +704,4 @@ - (void)imageCropViewController:(RSKImageCropViewController *)controller } @end +