【问题标题】:How to show preview image before downloading in iOS?如何在 iOS 中下载前显示预览图像?
【发布时间】:2018-02-18 10:01:00
【问题描述】:

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

下载前预览图片...

下载后...

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

【问题讨论】:

    标签: ios preview imagedownload


    【解决方案1】:
    • 在服务器上生成第二个分辨率非常低的图像,有时称为缩略图。
    • 下载该缩略图
    • 显示缩略图,可选择使用模糊来覆盖像素化效果

    【讨论】:

      【解决方案2】:

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

      简单而完美的表现

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

      1. 获取缓存图片的文件路径
      2. 从带有“file://”的文件路径前缀创建一个 URL 对象

      “文件://”。表示它的本地路径

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

      缩略图数据

      1. 只分配本地url路径

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-05-17
          • 2012-04-20
          • 1970-01-01
          • 2011-10-25
          • 2014-09-26
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多