在 Xcode 10.1 (10B61) 中,UIImage(named: "YourHeifImage")
与其他资源一样工作。
有趣的是,当您想尝试 \xe2\x80\xa6 并将 HEIF 图片从您的(例如 iPhone)照片 AirDrop 到您的 Mac 时,它将获得扩展名.HEIC
(全部大写)。然后,当您将该图像添加到 Xcode xcassets 时,Xcode 会抱怨扩展名不正确:
\n\n\n\xe2\x80\xa6.xcassets:警告:内容不明确:图像集“IMG_1791”引用文件“IMG_1791.HEIC”,但该文件没有有效的扩展名。
\n
如果您首先将扩展名更改为小写.heic
,然后将其添加到 xcassets,则一切正常。
虽然赵的答案有效,但速度相当慢。下面的速度快10-20倍。尽管出于某些原因,它仍然无法在模拟器中运行,所以请记住这一点。
func convert(url: URL) -> UIImage? {
guard let source = CGImageSourceCreateWithURL(url as CFURL, nil) else { return nil }
guard let cgImage = CGImageSourceCreateImageAtIndex(source, 0, nil) else { return nil }
return UIImage(cgImage: cgImage)
}
Run Code Online (Sandbox Code Playgroud)
WWDC的幻灯片在第141页上对此进行了概述,但之前对我而言还不是很清楚:https : //devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf
不幸的是,我仍然无法找到在xcassets文件夹中使用图像的方法,因此您要么必须将文件包含在资产之外,要么要从网络上提取文件。如果有人知道解决方法,请发布。
归档时间: |
|
查看次数: |
3330 次 |
最近记录: |