imgix-swift
是用于生成 imgix 图像 URL 的客户端库。用 Swift 编写,但也适用于 Objective-C 代码库。
安装
- Carthage:
github "imgix/imgix-swift"
- CocoaPods:
pod "ImgixSwift"
- Swift 包管理器:
// 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
来禁用。