【发布时间】:2020-03-13 12:14:17
【问题描述】:
如果我使用我知道的方法(UIImageWriteToSavedPhotosAlbum() 和 [PHAssetChangeRequest creationRequestForAssetFromImage:img])将图像保存到照片卷中,随后使用UIImagePickerController 选择保存的照片会给我一个.jpg 图像。
info[UIImagePickerControllerReferenceURL] 给assets-library://asset/asset.JPG?id=B8B231DC-3A84-4F65-AD5E-D6C431CB5F8B&ext=JPG
和
例如[((PHAsset*)info[UIImagePickerControllerPHAsset]) valueForKey:@"filename"] 给我@"IMG_5512.JPG"。
但是,如果我使用“相机”应用拍摄照片,则使用UIImagePickerController 选择的照片具有 HEIC 扩展名(假设“高效”设置在“相机”设置中有效)。
那么有什么方便的方法以 HEIC 格式保存到照片卷以响应
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
?
【问题讨论】:
-
@matt 我不太熟悉 UIImage 的内部结构。你指的是
let rawData = myImage.cgImage?.dataProvider?.data as Data?就像stackoverflow.com/questions/4623931/… 中提到的那样吗? -
stackoverflow.com/questions/47470419/… 告诉您如何获取 HEIF 数据,然后,正如我之前所说,您应该能够从该数据创建资产。
-
@matt 太棒了,这行得通!我以前从未使用过 CIImage,所以如果没有指针,我将无法解决它。我想知道为什么这里没有像
UIImageHEIFRepresentation这样的东西来拥有更高级别的东西。
标签: ios uiimagepickercontroller