ImgixSwift 1.1.3

ImgixSwift 1.1.3

测试已测试
Lang语言 SwiftSwift
许可证 BSD-2-Clause
发布最后发布2021年4月
SPM支持 SPM

Paul StrawImgix 开发者 维护。



  • Paul Straw 和 Sherwin Heydarbeygi

imgix logo

imgix-swift 是用于生成 imgix 图像 URL 的客户端库。用 Swift 编写,但也适用于 Objective-C 代码库。

CocoaPods Carthage compatible Build Status Supported Platforms License


安装

// add the following to your Package.swift manifest, within the dependencies array

.package(url: "https://github.com/imgix/imgix-swift.git", from: "1.0.0")

// add the package name "ImgixSwift" to the list of named dependencies in your project target

.target(
    name: "YourSwiftProject",
    dependencies: ["ImgixSwift"]),

1.0.0 版本开始,imgix Swift 客户端与 Swift 5.0 兼容。

与 Swift 4.0 兼容的最新版本是 0.4.3

与 Swift 3.0 兼容的最新版本是 0.3.0

使用

Swift

// Import the framework
import ImgixSwift

// Set up an ImgixClient
let client = ImgixClient.init(host: "assets.imgix.net")

// Build a basic URL
client.buildUrl("dog.jpg") // => https://assets.imgix.net/dog.jpg

// Add some parameters
client.buildUrl("dog.jpg", params: [
  "w": 300,
  "h": 300,
  "fit": "crop"
]) // => https://assets.imgix.net/dog.jpg?fit=crop&h=300&w=300

Objective-C

如果你的项目中不包含其他Swift代码,请确保将你的目标的“Build Settings > Build Options > Embedded Content Contains Swift Code”设置为“YES”。

// Import the framework
#import <ImgixSwift/ImgixSwift.h>

// Set up an ImgixClient
ImgixClient *client = [[ImgixClient alloc] initWithHost:@"assets.imgix.net"];

// Build a basic URL
[client buildUrl:@"dog.jpg"]; // => https://assets.imgix.net/dog.jpg

// Add some parameters
[client buildUrl:@"dog.jpg", params:@{
  @"w": @300,
  @"h": @300,
  @"fit": @"crop",
}]; // => https://assets.imgix.net/dog.jpg?fit=crop&h=300&w=300

高级用法

自动签名

如果你使用的是需要签名的源,imgix-swift可以为你自动构建和签名它们。

let signedClient = ImgixClient.init(
  host: "imgix-library-secure-test-source.imgix.net",
  secureUrlToken: "EHFQXiZhxP4wA2c4"
)

signedClient.buildUrl("dog.jpg", params: [
  "bri": 50
]) // => https://imgix-library-secure-test-source.imgix.net/dog.jpg?bri=50&s=3b293930d9c288fb788657fd9ed8164f

自动Base64编码

imgix-swift会自动将任何以64结尾的参数键Base64编码,以符合imgix的Base64变体参数要求。

let client = ImgixClient.init(host: "assets.imgix.net")

client.buildUrl("dog.jpg", params: [
  "w": 640,
  "txt64": "🐶 Puppy!",
  "txtfont64": "Avenir Next Demi,Bold",
  "txtalign": "center,top",
  "txtpad": 50,
  "txtshad": 10,
  "txtclr": "fff",
  "txtfit": "max",
  "txtsize": 50
]) // => https://assets.imgix.net/dog.jpg?txt64=8J-QtiBQdXBweSE&txtalign=center%2Ctop&txtclr=fff&txtfit=max&txtfont64=QXZlbmlyIE5leHQgRGVtaSxCb2xk&txtpad=50&txtshad=10&txtsize=50&w=640

URL重建

您可以使用ImgixClient#reconstruct方法重建现有的URL。现有参数将与传入的参数合并或覆盖。

let client = ImgixClient.init(host: "assets.imgix.net")
let inputUrl = URL.init(string: "https://paulstraw.imgix.net/pika.jpg?w=300")!

client.reconstruct(originalURL: inputUrl, params: [
  "h": 300,
  "fit": "crop"
]) // => https://paulstraw.imgix.net/pika.jpg?fit=crop&h=300&w=300

什么是ixlib参数

出于安全和诊断目的,我们默认对所有请求使用生成URL时所使用的库的语言和版本进行签名。这可以通过设置client.includeLibraryParam = false来禁用。