Guest User

Untitled

a guest
Jan 17th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. let data: Data? = try? Data(contentsOf: Bundle.main.url(forResource: "exposure_tab_gray_arrow_right@2x", withExtension: "png")!)
  2.  
  3. internal struct ImageHeaderData {
  4. static var PNG: [UInt8] = [0x89]
  5. static var JPEG: [UInt8] = [0xFF]
  6. static var GIF: [UInt8] = [0x47]
  7. static var BMP: [UInt8] = [0x42]
  8. static var TIFF_01: [UInt8] = [0x49]
  9. static var TIFF_02: [UInt8] = [0x4D]
  10. }
  11.  
  12. do {
  13. let start = (data! as NSData).bytes.bindMemory(to: UInt8.self, capacity: data!.count)
  14. let byte: UInt8? = UnsafeBufferPointer(start: start, count: 1).first
  15. print(byte as Any)
  16.  
  17. switch byte {
  18. case ImageHeaderData.PNG:
  19. return .PNG
  20. case ImageHeaderData.JPEG:
  21. return .JPEG
  22. case ImageHeaderData.GIF:
  23. return .GIF
  24. case ImageHeaderData.TIFF_01:
  25. fallthrough
  26. case ImageHeaderData.TIFF_02:
  27. return .TIFF
  28. case ImageHeaderData.BMP:
  29. return .BMP
  30. }
  31. }
  32.  
  33. do {
  34. var buffer = [UInt8](repeating: 0, count: 1)
  35. (data! as NSData).getBytes(&buffer, range: NSRange(location: 0, length: 1))
  36. print(buffer as Any)
  37.  
  38. switch buffer {
  39. case ImageHeaderData.PNG:
  40. return .PNG
  41. case ImageHeaderData.JPEG:
  42. return .JPEG
  43. case ImageHeaderData.GIF:
  44. return .GIF
  45. case ImageHeaderData.TIFF_01:
  46. fallthrough
  47. case ImageHeaderData.TIFF_02:
  48. return .TIFF
  49. case ImageHeaderData.BMP:
  50. return .BMP
  51. }
  52. }
Add Comment
Please, Sign In to add comment