如何在iOS下载之前显示预览图像?

时间:2018-02-18 10:01:00

标签: ios preview imagedownload

如何在下载实际图像之前显示预览图像。 在下载其节目预览图像之前,WhatsApp正在做类似的事情。我的问题是如何显示预览图像?

下载前预览图片...

String.indexOf

下载后...... enter image description here

以上图片来自WhatsApp应用程序,以便更好地理解我的问题..

3 个答案:

答案 0 :(得分:3)

  • 在服务器上生成第二个非常低分辨率的图像版本,有时称为缩略图。
  • 下载缩略图
  • 呈现缩略图,可选择使用模糊来覆盖像素化的效果

答案 1 :(得分:0)

这是使用thumbnailURL或thumbnailData的更好的解决方案,因为你有一个缓存的图像抛出alamofire,SDWebImage ......

它简单而完美的表现

对于thumbnailURL ,它只接受本地路径:

  1. 获取缓存图片的文件路径
  2. 使用" file://"
  3. 从文件路径前缀创建一个URL对象

    <强> &#34;文件://&#34 ;.表明它的本地路径

        if let path = SDImageCache.shared().defaultCachePath(forKey: item.url_thumbnail), let url = URL(string: "file://\(path)") {
             attributeSet.thumbnailURL = url
        }
    

    缩略图数据

    1. 只需指定本地网址

      即可
       attributeSet.thumbnailData = try? Data(contentsOf: url)
      
    2. 调试并简单了解发生了什么

      do {
          attributeSet.thumbnailData = try Data(contentsOf: url)
      } catch (let error as NSError) {
          print(error)
      }
      

答案 2 :(得分:0)

一种方法是让服务器使用开放套接字连接(通常用于聊天应用程序)将完整映像的非常低分辨率的缩略图直接发送到客户端。

这样客户端不需要触发异步下载操作来下载缩略图,这样就可以立即将缩略图呈现给用户(带有某种覆盖或模糊)

为了通过打开的套接字发送它,服务器可以将低分辨率缩略图转换为base64字符串并将其作为字符串发送。