iOS 11的WKWebView支持.heic图像吗?

3

我尝试在iOS 11.4上使用WKWebView.loadFileURL加载一个.heic图像,但是得到了一个空白页面。(我确定URL是正确的,因为我可以在Xcode中预览它)


回家睡了一晚上,第二天回来后,我发现它正常工作,没有任何改变。 - John Smith
似乎OneDrive已经自动将.heic文件转换为jpeg格式,但仍无法显示.heic文件。 - John Smith
我也遇到了同样的问题。 - szotp
1个回答

0

将“heic”图像转换为jpeg数据,并借助HTML加载:

if fileExtension == "heic" {

    guard let fileData = fileData, 
        let image = UIImage(data: fileData), 
        let jpegData = image.jpegData(compressionQuality: 1.0) 
    else { 
        return 
    }

    let base64JPG = jpegData.base64EncodedString(options: .lineLength64Characters)
    let htmlImgTag = "<img src=\"data:image/jpeg;base64, " + base64JPG + "\" alt=\"" + fileUrl.lastPathComponent + "\" />"

    let imageHTML = "<!DOCTYPE html>" +
                    "<html lang=\"ja\">" +
                    "<head>" +
                    "<meta charset=\"UTF-8\">" +
                    "<style type=\"text/css\">" +
                    "html{margin:0;padding:0;}" +
                    "body {" +
                    "margin: 0;" +
                    "padding: 0;" +
                    "color: #363636;" +
                    "font-size: 90%;" +
                    "line-height: 1.6;" +
                    "background: black;" +
                    "}" +
                    "img{" +
                    "position: absolute;" +
                    "top: 0;" +
                    "bottom: 0;" +
                    "left: 0;" +
                    "right: 0;" +
                    "margin: auto;" +
                    "max-width: 100%;" +
                    "max-height: 100%;" +
                    "}" +
                    "</style>" +
                    "</head>" +
                    "<body id=\"page\">" +
                    "\(htmlImgTag)" +
                    "</body></html>"

    webView.loadHTMLString(imageHTML, baseURL: nil)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接