- Small but complete, only
200lines 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.
/* Create AImage with URL */
letimage=AImage(url:Bundle.main.url(forResource:"test", withExtension:"gif")!)
/* Create AImageView */
letimageview=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 =falseCompared with Gifu and Apple's example code.
Test1: Display view.gif
| Library | CPU | Memory |
|---|---|---|
| Apple's Example Code | ![]() | ![]() |
| Gifu | ![]() | ![]() |
| AImage | ![]() | ![]() |
Test2: Display earth.gif
| Library | CPU | Memory |
|---|---|---|
| Apple's Example Code | ![]() | ![]() |
| Gifu | ![]() | ![]() |
| AImage | ![]() | ![]() |
Measurement Factors:
Measurement time: August 24, 2017
Measurement device: iPhone6, iOS 11.0(15A5362a)
Version of swift 2.3 can be found in here.
AImage is released under the MIT license. See LICENSE for details.












