Pixaven是一个现代的、使用GPU加速的图像处理API。
我们以极快的速度对您的图像进行转换、增强、调整、裁剪、风格化、过滤和水印。
文档
使用Carthage安装
Carthage是一个去中心化的依赖管理器,可以自动化将框架添加到您的Cocoa应用程序的过程。您可以使用以下命令使用Homebrew安装Carthage:
$ brew update
$ brew install carthage
要使用Carthage将Pixaven集成到Xcode项目中,在您的Cartfile中指定它。
github "pixaven/pixaven-swift"
使用CocoaPods安装
source 'https://github.com/CocoaPods/Specs.git'
pod 'Pixaven', '~> 1.0.1'
快速示例
Pixaven API允许您以两种方式提供图像进行处理:直接上传到API(图像上传),或提供公开可用的图像URL(图像提取)。
您还可以根据每个请求选择您首选的响应方法。默认情况下,Pixaven API将返回一个包含有关输入和输出图像的丰富元数据的JSON响应。或者,您可以使用二进制响应。启用后,API将以完整二进制表示形式响应生成的(输出)图像。此Swift模块公开了两个方便的方法来与二进制响应交互:.toFile()
和.toBuffer()
。
图片上传
以下是一个快速示例,演示如何上传本地文件进行处理。它在最终步骤中调用.toJSON()
,并指示API返回JSON响应。
// Pass your Pixaven API Key to the constructor
let client = PixavenClient(key: "YOUR-API-KEY")
// Upload an image from disk and resize it to 1024 x 768,
// using 'fit' mode and gravity set to 'bottom'
let fileUrl = Bundle.main.url(forResource: "sample", withExtension: "jpg")!
let parameters: [String : Any] = ["width": 1024, "height": "768", "mode": "fit", "gravity": "bottom"]
do {
try client.upload(fileUrl: fileUrl).resize(parameters).toJson() { [weak self] (result) in
switch (result) {
case .success(let data):
DispatchQueue.main.async {
let response = try? JSONSerialization.jsonObject(with: data, options: .mutableContainers)
print(response!)
}
case .failure(let error):
DispatchQueue.main.async {
print(error)
}
}
}
} catch let error {
print(error)
}
图片抓取
如果您已经将源视觉在线上公开,我们建议默认使用Image Fetch。这样,您只需发送一个包含图像URL和步骤的JSON有效载荷。此方法比上传图像的完整二进制表示要快得多。
// Pass your Pixaven API Key to the constructor
let client = PixavenClient(key: "YOUR-API-KEY")
// Provide a publicly available image URL with `.fetch()` method
// and resize it to 1024 x 768 using 'fit' mode and gravity set to 'bottom'
let imageURL = URL(string: "https://www.website.com/image.jpg")!
let parameters: [String : Any] = ["width": 1024, "height": "768", "mode": "fit", "gravity": "bottom"]
do {
try client.fetch(url: imageURL).resize(parameters).toJson() { [weak self] (result) in
switch (result) {
case .success(let data):
DispatchQueue.main.async {
let response = try? JSONSerialization.jsonObject(with: data, options: .mutableContainers)
print(response!)
}
case .failure(let error):
DispatchQueue.main.async {
print(error)
}
}
}
} catch let error {
print(error)
}
许可证
本软件遵照MIT许可证分发。有关更多信息,请参阅LICENSE文件。