在网络中显示苹果 heif 图像
Posted
技术标签:
【中文标题】在网络中显示苹果 heif 图像【英文标题】:Display apples heif images in web 【发布时间】:2018-03-08 03:00:58 【问题描述】:Apple 在 ios 11 中引入了 heif 技术。在我的网站上,一些 iPhone 用户现在希望以相同的格式上传这些图片(不知道是否可以在 iOS 中将它们转换为 JPEG,我使用的是 android 并且不能测试一下)。如果我现在允许他们上传 heif 图片,我该如何在浏览器中显示它们?我尝试了一点,但不幸的是它不适用于简单的 html img 标签。我可以以不同的方式显示这个,相对兼容,还是我必须转换整个图像?
【问题讨论】:
【参考方案1】:试试这个https://github.com/nokiatech/heif NOKIA 提供 HEIF Reader javascript 实现。
【讨论】:
感谢您的建议!但是,许可证不够免费。我需要一个也可以在商业上使用的解决方案。【参考方案2】:我还有一个应用程序,它涉及从 iPhone 上传图像。因此,对于基本解决方案,我们所做的是将 heif 图像在 iOS 上转换为 jpeg,然后再将它们上传到服务器。 我建议您也这样做,因为这样可以避免您的附加组件在网络上显示 heif 图像。 转为jpeg图片涉及的步骤如下-
使用从资产中获取 heif imageData
(PHImageRequestID)requestImageDataForAsset:(PHAsset *)asset options:(nullable PHImageRequestOptions *)options resultHandler:(void(^)(NSData *__nullable imageData, NSString *__nullable dataUTI, UIImageOrientation 方向, NSDictionary *__nullable info))resultHandler;从上述方法返回的imageData中获取图片
UIImage *image = [UIImage imageWithData:imageData];
使用将图像转换为 jpeg 图像数据
NSData *jpgImageData = UIImageJPEGRepresentation(image, 1.0);
现在您可以使用此 jpgImageData 上传到服务器。希望这可以帮助您解决问题。
【讨论】:
以上是关于在网络中显示苹果 heif 图像的主要内容,如果未能解决你的问题,请参考以下文章
windows 借助 wsl 使用pyheif 和 PIL Pillow实现对苹果 heif 格式的图像批量转换