Hero image showing the configuration abilities of IMGLYEngine

IMGLY Creative Engine(创意引擎)

该软件包包含 IMG.LY Creative Engine 的 Swift 版本,它是 CE.SDK 的核心。 Creative Engine 使您能够使用 Swift 构建任何设计编辑 UI、自动化和创意工作流程。 它提供高性能和强大的图形处理能力,结合了布局、排版和图像处理的最佳特性,以及围绕模板和适应的高级工作流程。

无论您构建的是照片编辑器、基于模板的设计工具,还是为您的应用程序实现可扩展的内容创建自动化,Creative Engine 都能无缝集成到任何 iOS 应用程序中。

访问我们的文档,获取有关如何集成和自定义引擎以满足您特定用例的更多教程。

许可

CreativeEditor SDK 是一款商业产品。 要使用它并获得访问权限,您需要使用许可证文件解锁 SDK。 您可以在 https://img.ly/pricing 购买许可证。

集成

SwiftUI

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
      }
    }
  }
}

UIKit

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 方法的列表和描述。

更新日志

要了解最新更改,请访问更新日志