如何以JPEG格式读取HEIC画廊照片

iOS11引入了HEIC作为高质量图像的新格式。 不幸的是,其他设备(例如PC)经常无法以这种格式渲染图像。 因此,建议在将图像提供给其他用户之前将其转换为JPEG。

一种选择是将HEIC文件上传到服务器,然后将文件在那里转换为JPEG。 尽管将文件直接从设备上传到S3或Azure Blob存储之类的云存储服务时没有任何中间处理,但这是不可能的。 对于这些情况,在设备本身上将HEIC图像转换为JPEG是最好的方法。

可以在Objective-C中完成以下操作:

  [[PHImageManager defaultManager] requestImageDataForAsset :obj 
选项:选项
resultHandler:^(NSData * _Nullable imageData,NSString * _Nullable dataUTI,UIImageOrientation方向,NSDictionary * _Nullable info){
UIImage * image = [UIImage imageWithData:imageData];
mediaData = UIImageJPEGRepresentation(image,1) ;
...

有关完整示例,请参见对cordova-gallery-api插件的以下提交。

编码愉快!