Kanvas
Kanvas is an open-source iOS library for adding effects, drawings, text, stickers, and making GIFs from existing media or the camera.
It is used in the Tumblr iOS app as a camera, media editor, GIF maker, and media posting tool.
Setup
Add this to your Podfile
:
pod 'Kanvas', :git => 'https://github.com/tumblr/kanvas-ios.git'
And run:
pod install
Usage
Kanvas is mainly two parts: the Camera, and the Editor. Both are just view controllers that you present, and have settings and delegates that help you customize their behavior.
To show the camera:
let settings = CameraSettings()
let camera = CameraController(settings: settings)
present(camera, animated: true)
And to edit existing media, like a video:
let videoURL = URL(string: "path/to/video.mov")
let settings = CameraSettings()
let editor = EditorViewController.createEditor(for: videoURL, settings: settings)
present(editor, animated: true)
Each view controller accepts a CameraSettings
object, which provides fine-grained settings and feature togges. Each view controller also has a delegate
property for providing your own handlers to creating media, performing editing operations, logging, or really anything else Kanvas can do.
Documentation is lacking at the moment, but contributions are welcome!
Example App
Example
is an example app showing how to use Kanvas. Try it out!
- Run
cd Example; bundle exec pod install
- Open
Example/KanvasExample.xcworkspace
in Xcode - Run the app on a device.