EzImageLoader 3.5.1

EzImageLoader 3.5.1

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最后发布2020年9月
SPM支持 SPM

asaday 维护。



  • 作者:

  • asaday

EzImageLoader

EzImageLoader 是一个易于使用的库,用于通过 HTTP/HTTPS 加载图像。EzImageLoader 与 EzHTTP 相关。

功能

  • 最简单的图像加载
  • 只需编写更短的代码
  • 支持 WebP
  • 支持 GIF 格式:当然,支持动画 GIF
  • 扩展 UIImage 和 UIImageView
  • 使用 EzHTTP 进行 HTTP/HTTPS 请求

要求

  • iOS 8.0+
  • Swift 3 和 EzImageLoader v3.x 的 Xcode 8+

如果您使用 Swift 2.x,请使用 EzImageLoader v0.0.x。

安装

CocoaPods

在 Podfile 的依赖中添加 EzImageLoader。

pod 'EzImageLoader'

示例 Podfile 在此处:here

Carthage

您也可以使用 Carthage 安装 EzImageLoader。在您的 Cartfile 中添加此行。

github "asaday/EzImageLoader"

使用方法

首先导入 EzImageLoader。

import EzImageLoader

此外,导入 EzHTTP 以轻松创建 URLRequest。

import EzHTTP

基本

GET

获取图像。

let iv = UIImageView(frame: view.bounds)
ImageLoader.get("https://httpbin.org/image/png") {iv.image = $0.image}

获取图像并进行缩放

let mSize = CGSize(width: 200, height: 200)
ImageLoader.get(urlStr, size: mSize) {iv.image = $0.image}

URLRequest

使用 NSURLRequest 获取图像。注意 “HTTP.createRequest()” 使用 EzHTTP 创建 URLRequest。

let iv = UIImageView(frame: view.bounds)
let req = HTTP.createRequest(.GET, "https://httpbin.org/image/png", params: [:], headers: [:])
ImageLoader.request(req!) {iv.image = $0.image}

请求并缩放图像。

let mSize = CGSize(width: 200, height: 200)
ImageLoader.request(req!, size:mSize) {iv.image = $0.image}

结果

您可以获取有关请求的一些信息。ResultReason是枚举类型,用于表示结果的状况。

  • $0.image UIImage?
  • $0.reason enum ResultReason
  • $0.decodeTime TimeInterval
  • $0.downloadTime TimeInterval
let iv = UIImageView(frame: view.bounds)
let mSize = CGSize(width: 300, height: 200)
ImageLoader.get("https://www.gstatic.com/webp/gallery/4.webp", size: mSize) {
    iv.image = $0.image
    print("Reason", $0.reason)
    print("Decode Time", $0.decodeTime)
    print("Download Time", $0.downloadTime)
}

// Reason downloaded
// Decode Time 0.0499059557914734
// Download Time 0.553457021713257

异步

异步请求 .requestASync().getASyinc() 用于非主任务中的使用。

let req = HTTP.createRequest(.GET, "https://httpbin.org/image/png", params: [:], headers: [:])
let img1:UIImage? = ImageLoader.requestASync(req!)

let img2:UIImage? = ImageLoader.getASync("https://httpbin.org/image/png")
let img3:UIImage? = ImageLoader.getASync(urlStr, headers: ["Custom-Content":":D"])

UIImageView 扩展

EzImageLoader 扩展了 UIImageView。它非常简单易用。

let iv = UIImageView(frame: view.bounds)
iv.loadURL("https://httpbin.org/image/webp")

// With additional headers
iv.loadURL("https://httpbin.org/image/png", headers: ["Custom-Content":"HAHAHA"])

// Apply Filter
let ilFilter = ImageLoader.Filter.resizer(CGSize(width: 320, height: 320))
iv.loadURL("https://httpbin.org/image/png", filter: ilFilter)

与 URLRequest 一起使用。

let iv = UIImageView(frame: view.bounds)
let req = HTTP.createRequest(.GET, "https://httpbin.org/image/png", params: [:], headers: [:])
iv.loadRequest(req!)

// Apply Filter
let ilFilter = ImageLoader.Filter.resizer(CGSize(width: 280, height: 280))
iv.loadRequest(req!, filter: ilFilter)

UIImage 扩展

调整-image的大小,适用于UIImage。

let img:UIImage = #imageLiteral(resourceName: "SpImage").resize(CGSize(width: 280, height: 280))

获取图像作为Data并进行解码为UIImage。可以很好地使用动画GIF和WebPs。

let gifURL = "https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif"
HTTP.get(gifURL) {
    let img = UIImage.decode($0.data!)
    iv.image = img
}