//
// UIImage+GIF.swift
// swiftPractise
//
// Created by 云君 on 2017/6/5.
// Copyright © 2017年 pilgrim. All rights reserved.
//
import Foundation
import UIKit
import ImageIO
extension UIImage {
class func animatedGIFWith(data: Data?) -> UIImage? {
if let data = data {
if let source = CGImageSourceCreateWithData(data as CFData, nil) {
let count = CGImageSourceGetCount(source)
var animatedImage: UIImage? = nil
if count <= 1 {
animatedImage = UIImage(data: data)
} else {
var images: [UIImage] = []
var duration: TimeInterval = 0.0
for i in 0..<count {
let image = CGImageSourceCreateImageAtIndex(source, i, nil)
if image == nil {
continue
}
duration = duration + frameDurationAt(index: i, source: source)
images.append(UIImage(cgImage: image!, scale: UIScreen.main.scale, orientation: .up))
}