Skip to content

Instantly share code, notes, and snippets.

@songzhou21
Created October 19, 2016 04:43
Show Gist options
  • Save songzhou21/3dfe61bbc98d1a362036a73953eaaf4c to your computer and use it in GitHub Desktop.
Save songzhou21/3dfe61bbc98d1a362036a73953eaaf4c to your computer and use it in GitHub Desktop.
image_format
private let pngHeader: [UInt8] = [0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A]
private let jpgHeaderSOI: [UInt8] = [0xFF, 0xD8]
private let jpgHeaderIF: [UInt8] = [0xFF]
private let gifHeader: [UInt8] = [0x47, 0x49, 0x46]
// MARK: - Image format
enum ImageFormat {
case Unknown, PNG, JPEG, GIF
}
extension NSData {
var kf_imageFormat: ImageFormat {
var buffer = [UInt8](count: 8, repeatedValue: 0)
self.getBytes(&buffer, length: 8)
if buffer == pngHeader {
return .PNG
} else if buffer[0] == jpgHeaderSOI[0] &&
buffer[1] == jpgHeaderSOI[1] &&
buffer[2] == jpgHeaderIF[0]
{
return .JPEG
}else if buffer[0] == gifHeader[0] &&
buffer[1] == gifHeader[1] &&
buffer[2] == gifHeader[2]
{
return .GIF
}
return .Unknown
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment