Features
- Small but complete, only
200
lines of code. - Allow to control display quality, memory usage, loop time and display progress.
- Have a great performance on memory and cpu usage.
- Using asynchronous image decoding to reduce the main thread CPU usage.
Usage
/* Create AImage with URL */
let image = AImage(url: Bundle.main.url(forResource: "test", withExtension: "gif")!)
/* Create AImageView */
let imageview = AImageView(frame:CGRect(x: 0.0, y: 50.0, width: 380.0, height: 212.0))
/* Add AImage to AImageView */
imageview.add(image: image!)
/* Start displaying animated image */
imageview.play = true
...
...
/* Stop displaying animated image */
imageview.play = false
Benchmark
Compared with Gifu and Apple's example code.
view.gif
Test1: DisplayLibrary | CPU | Memory |
---|---|---|
Apple's Example Code | ||
Gifu | ||
AImage |
earth.gif
Test2: DisplayLibrary | CPU | Memory |
---|---|---|
Apple's Example Code | ||
Gifu | ||
AImage |
Measurement Factors:
-
Measurement time: August 24, 2017
-
Measurement device: iPhone6, iOS 11.0(15A5362a)
Principles
Old Version
Version of swift 2.3 can be found in here.
Licence
AImage is released under the MIT license. See LICENSE for details.