Logo

ImageScout

Test GitHub release Swift 5.0 platforms

ImageScoutfastimage 的 Swift 实现。它允许你通过尽可能少地下载来查找远程图像的大小和类型。

为什么?

有时你需要知道远程图像的大小才能下载它,例如在 UICollectionView 中使用自定义布局。

如何实现?

ImageScout 在下载时解析图像数据。 一旦它确定了图像的大小和类型,它就会停止下载。 在大多数情况下,下载的数据小于 60 KB。

安装

Swift Package Manager

将以下内容添加到你的 Package.switft 文件中

let package = Package(
    dependencies: [
    .package(url: "https://github.com/kaishin/ImageScout.git", from: "2.1.0")
    ],
)

Carthage

CocoaPods

用法

你将使用的唯一方法是 scoutImageWithURI(),具有以下完整签名

func scoutImageWithURI(URI: String, completion: (NSError?, CGSize, ScoutedImageType) -> ())

这是一个例子

let scout = ImageScout()

scout.scoutImageWithURI("http://.../image-scout-logo.png") { error, size, type in
  if let error = error {
    print(error.code)
  } else {
    print("Size: \(size)")
    print("Type: \(type.rawValue)")
  }
}

如果图像未成功解析,则大小将为 CGSizeZero,类型为 .Unsupported。 错误将包含有关原因的更多信息。

⚠️ 重要的是保持对 ImageScout 实例的强引用,直到回调完成。 如果引用丢失,你的完成处理程序将永远不会被执行。

兼容性

许可

请参阅 LICENSE。