作者:倩-1130 | 来源:互联网 | 2023-01-16 15:44
我的印象是UIImage将支持iOS 11中引入的HEIC / HEIF文件。在我的测试中,情况似乎并非如此。如果我确实让image = UIImage(named:“ test”)指向test.heic,那么image为nil。如果我使用图像文字,那么它将使应用程序崩溃。想知道现在是否尚未实现。谢谢。
1> Brian F Leig..:
虽然赵的答案有效,但速度相当慢。下面的速度快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)
}
WWDC的幻灯片在第141页上对此进行了概述,但之前对我而言还不是很清楚:https : //devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf
不幸的是,我仍然无法找到在xcassets文件夹中使用图像的方法,因此您要么必须将文件包含在资产之外,要么要从网络上提取文件。如果有人知道解决方法,请发布。