AImage
AImage copied to clipboard
An animated gif & apng engine for iOS in Swift. Have a great performance on memory and cpu usage.

Features
- [x] Small but complete, only
200lines of code. - [x] Allow to control display quality, memory usage, loop time and display progress.
- [x] Have a great performance on memory and cpu usage.
- [x] 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.
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)
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.











