Make a slideshow from the image for editor screen (IOS)

Here is an example of how to create a slideshow from the image for the Video Editor SDK IOS (opening from editor screen)

import Foundation
import BanubaVideoEditorCore

class VideoEditorImageItem: VideoEditorImageAssetProtocol {
  var duration: TimeInterval
  var image: CGImage?
  var shouldUseImageEffect: Bool

  init(duration: TimeInterval, url: URL, shouldUseImageEffect: Bool) {
    self.duration = duration
    self.shouldUseImageEffect = shouldUseImageEffect
    self.image = loadCGImage(from: url)
  }

  func loadCGImage(from url: URL) -> CGImage? {
    guard let imageSource = CGImageSourceCreateWithURL(url as CFURL, nil) else {
      return nil
    }

    return CGImageSourceCreateImageAtIndex(imageSource, 0, nil)
  }

  func getOrPreloadImage() -> CGImage? {
    return image
  }

  func unloadImage() {}
}

class Slideshow {
  func makeSlideshow(banubaToken: String, url: URL, completion: @escaping ((URL?, String?) -> Void)) {
    guard let videoEditorService = VideoEditorService(token: banubaToken),
          let exportSDK = VEExport(videoEditorService: videoEditorService)
    else {
      completion(nil, "Failed to init Export SDK")
      return
    }

    exportSDK.exportSlideshowImages(
      [VideoEditorImageItem(duration: 4.0, url: url, shouldUseImageEffect: false)],
      videoResolution: .hd1280x720,
      progressHandler: nil
    ) { url, error in
      if let error {
        completion(nil, error.localizedDescription)
      } else {
        completion(url, nil)
      }
    }
  }
}