|
|
@@ -183,6 +183,7 @@ public extension ImageCache {
|
|
|
switch imageFormat {
|
|
|
case .PNG: data = UIImagePNGRepresentation(image)
|
|
|
case .JPEG: data = UIImageJPEGRepresentation(image, 1.0)
|
|
|
+ case .GIF: data = originalData
|
|
|
case .Unknown: data = UIImagePNGRepresentation(image.kf_normalizedImage())
|
|
|
}
|
|
|
|
|
|
@@ -651,6 +652,7 @@ extension UIImage {
|
|
|
private let pngHeader: [UInt8] = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]
|
|
|
private let jpgHeaderSOI: [UInt8] = [0xFF, 0xD8]
|
|
|
private let jpgHeaderIF: [UInt8] = [0xFF, 0xE0]
|
|
|
+private let gifHeader: [UInt8] = [0x47, 0x49, 0x46]
|
|
|
|
|
|
extension NSData {
|
|
|
var kf_imageFormat: ImageFormat {
|
|
|
@@ -664,6 +666,11 @@ extension NSData {
|
|
|
buffer[3] == buffer[3] & jpgHeaderIF[1]
|
|
|
{
|
|
|
return .JPEG
|
|
|
+ }else if buffer[0] == gifHeader[0] &&
|
|
|
+ buffer[1] == gifHeader[1] &&
|
|
|
+ buffer[2] == gifHeader[2]
|
|
|
+ {
|
|
|
+ return .GIF
|
|
|
}
|
|
|
|
|
|
return .Unknown
|
|
|
@@ -671,7 +678,7 @@ extension NSData {
|
|
|
}
|
|
|
|
|
|
enum ImageFormat {
|
|
|
- case Unknown, PNG, JPEG
|
|
|
+ case Unknown, PNG, JPEG, GIF
|
|
|
}
|
|
|
|
|
|
extension Dictionary {
|