All Projects β†’ Alterplay β†’ APKenBurnsView

Alterplay / APKenBurnsView

Licence: MIT license
Ken Burns effect with face recognition!

Programming Languages

swift
15916 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to APKenBurnsView

Flutter-KenBurns
Kenburns effect on flutter
Stars: ✭ 82 (-11.83%)
Mutual labels:  kenburns
presentador
πŸ“½ An opinionated presentation framework. Just write what you want to present and it will do the rest.
Stars: ✭ 25 (-73.12%)
Mutual labels:  presentation
live-draw
A tool allows you to draw on screen real-time.
Stars: ✭ 400 (+330.11%)
Mutual labels:  presentation
go-info-displays
Using Go for Information Displays
Stars: ✭ 45 (-51.61%)
Mutual labels:  presentation
path demo
An experimental set of pathfinding algorithms for video games
Stars: ✭ 16 (-82.8%)
Mutual labels:  presentation
cppcon2015
Repository for the slides and the code of my CppCon 2015 talks.
Stars: ✭ 93 (+0%)
Mutual labels:  presentation
reveal-jekyll
Online presentation for GitHub Pages and Jekyll in Markdown using reveal.js with a Solarized Color Theme
Stars: ✭ 67 (-27.96%)
Mutual labels:  presentation
robotframework-preso
Introduction to Robot Framework - TriTAUG Presentation
Stars: ✭ 16 (-82.8%)
Mutual labels:  presentation
stateful-animations
🌟 HolyJS Talk: Animations in the Stateful World (How to Animate Things in React)
Stars: ✭ 55 (-40.86%)
Mutual labels:  presentation
RepSeP
Reproducible Self-Publishing - Demo Publications in the Most Common Formats
Stars: ✭ 14 (-84.95%)
Mutual labels:  presentation
s6
S6 Blank - Slideshow templates using HTML 5, CSS 3 'n' JavaScript 2017+ w/ Bespoke.js-compatible "microkernel"
Stars: ✭ 91 (-2.15%)
Mutual labels:  presentation
cookiecutter-reveal.js
πŸ“Š A cookiecutter template for reveal.js presentations.
Stars: ✭ 15 (-83.87%)
Mutual labels:  presentation
talks
Source for all talks I've presented at various conferences
Stars: ✭ 12 (-87.1%)
Mutual labels:  presentation
markdown-slides
Using markdown, write simple but beautiful presentations with math, animations and media.
Stars: ✭ 64 (-31.18%)
Mutual labels:  presentation
jupyter-django
Using Jupyter Notebook with Django: a presentation
Stars: ✭ 42 (-54.84%)
Mutual labels:  presentation
manim editor
Web Presenter for Mathematical Animations using Manim.
Stars: ✭ 144 (+54.84%)
Mutual labels:  presentation
kenburns
Ken Burns effect for DOM, Canvas2D, WebGL
Stars: ✭ 59 (-36.56%)
Mutual labels:  kenburns
BlindJS
BlindJS is a Javascript library that allows blind typing of pre-defined code. So stop worrying about writing valid code and start typing fast as hell!
Stars: ✭ 14 (-84.95%)
Mutual labels:  presentation
niconico-speenya
Google Chromeでニコニコするや぀
Stars: ✭ 85 (-8.6%)
Mutual labels:  presentation
InspireNN
No description or website provided.
Stars: ✭ 13 (-86.02%)
Mutual labels:  presentation

APKenBurnsView

APKenBurnsView

Build Status Version License Platform

Ken Burns effect with face recognition!

APKenBurnsView is UIView subclass which supports face recognition to beautifully animate people photos.

APKenBurnsView

Features

  • Face recognition feature to beautifully animate people photos.
  • Totally random algorithm. No more hardcoded values!
  • Memory efficient. Holds maximum of two UIImage pointers at any moment.
  • Pausing animations done right.
  • Auto restart after entering background and returning back.
  • A lot of animation customizations to fit your needs.

Face Recognition

APKenBurnsView supports three modes for face recognition:

  • None - no face recognition, simple Ken Burns effect.
  • Biggest - recognizes biggest face in image, if any then transition will start or finish (chosen randomly) in center of face rect.
  • Group - recognizes all faces in image, if any then transition will start or finish (chosen randomly) in center of compound rect of all faces.

Usage

Just simple interface. Provide data source class for UIImage's, setup all timings and run startAnimations(). No rocket science!

Data source should be ready to provide next image at the moment when APKenBurnsView calls func nextImageForKenBurnsView(kenBurnsView: APKenBurnsView) -> UIImage?. If there is no UIImage ready (still loading from network, etc.) then data source should return nil and APKenBurnsView will animate last image one more time. If you are loading your images from network you should consider some preloading mechanism.

Example of usage:

class MyViewController: UIViewController {
    // MARK: - Outlets 
    @IBOutlet weak var kenBurnsView: APKenBurnsView!

    // MARK: - Lifecycle
    override func viewDidLoad() {
        super.viewDidLoad()

        kenBurnsView.dataSource = self
        kenBurnsView.faceRecognitionMode = .Biggest
        
        kenBurnsView.scaleFactorDeviation = 0.5
        kenBurnsView.imageAnimationDuration = 5.0
        kenBurnsView.imageAnimationDurationDeviation = 1.0
        kenBurnsView.transitionAnimationDuration = 2.0
        kenBurnsView.transitionAnimationDurationDeviation = 1.0
    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        self.kenBurnsView.startAnimations()
    }
}
    
extension KenBurnsViewController: APKenBurnsViewDataSource {
    func nextImageForKenBurnsView(kenBurnsView: APKenBurnsView) -> UIImage? {
        return /* Provide UIImage instance */
    }
}

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

  • iOS 8.0 and higher
  • ARC

Installation

APKenBurnsView is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'APKenBurnsView'

Author

Nickolay Sheika, [email protected]

Contacts

If you have improvements or concerns, feel free to post an issue and write details.

Check out all Alterplay's GitHub projects. Email us with other ideas and projects.

License

APKenBurnsView is available under the MIT license. See the LICENSE file for more info.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].