该软件包包含 IMG.LY Creative Engine 的 Swift 版本,它是 CE.SDK 的核心。 Creative Engine 使您能够使用 Swift 构建任何设计编辑 UI、自动化和创意工作流程。 它提供高性能和强大的图形处理能力,结合了布局、排版和图像处理的最佳特性,以及围绕模板和适应的高级工作流程。
无论您构建的是照片编辑器、基于模板的设计工具,还是为您的应用程序实现可扩展的内容创建自动化,Creative Engine 都能无缝集成到任何 iOS 应用程序中。
访问我们的文档,获取有关如何集成和自定义引擎以满足您特定用例的更多教程。
CreativeEditor SDK 是一款商业产品。 要使用它并获得访问权限,您需要使用许可证文件解锁 SDK。 您可以在 https://img.ly/pricing 购买许可证。
import IMGLYEngine
import SwiftUI
struct IntegrateWithSwiftUI: View {
@State private var engine: Engine?
var body: some View {
Group {
if let engine {
ContentView(engine: engine)
} else {
ProgressView()
}
}
.onAppear {
Task {
engine = try await Engine(license: secrets.licenseKey, userID: "<your unique user id>")
}
}
}
}
struct ContentView: View {
@StateObject private var engine: Engine
init(engine: Engine) {
_engine = .init(wrappedValue: engine)
}
var body: some View {
ZStack {
Canvas(engine: engine)
Button("Use the Engine") {
// do something with the instance of Engine
}
}
}
}
import IMGLYEngine
import MetalKit
import UIKit
class IntegrateWithUIKit: UIViewController {
private var engine: Engine?
private lazy var canvas = MTKView(frame: .zero, device: MTLCreateSystemDefaultDevice())
private lazy var spinner = UIActivityIndicatorView()
private lazy var button = UIButton(type: .system, primaryAction: UIAction(title: "Use the engine", handler: { [unowned self] _ in
guard let engine else { return }
// do something with the instance of Engine
}
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(canvas)
view.addSubview(spinner)
view.addSubview(button)
// setup constraints
spinner.startAnimating()
spinner.hidesWhenStopped = true
button.isHidden = true
}
// pass lifecycle events
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
Task {
engine = try await Engine(context: .metalView(view: canvas), license: secrets.licenseKey, userID: "<your unique user id>")
engine?.onAppear()
spinner.stopAnimating()
button.isHidden = false
}
}
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
engine?.onDisappear()
}
}
IMGLYEngine 的完整文档可以在这里找到。 在那里,您将了解可用的配置选项,并找到所有 API 方法的列表和描述。
要了解最新更改,请访问更新日志。