From 7b02207537d35bfa1714bf8beafc921f717d100a Mon Sep 17 00:00:00 2001
From: 单军华
Date: Wed, 11 Jul 2018 10:47:42 +0800
Subject: [PATCH] 首次上传

---
 screendisplay/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m |   98 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 98 insertions(+), 0 deletions(-)

diff --git a/screendisplay/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m b/screendisplay/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m
new file mode 100644
index 0000000..6a59061
--- /dev/null
+++ b/screendisplay/Pods/SDWebImage/SDWebImage/NSData+ImageContentType.m
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the SDWebImage package.
+ * (c) Olivier Poitrey <rs@dailymotion.com>
+ * (c) Fabrice Aneche
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+#import "NSData+ImageContentType.h"
+#if SD_MAC
+#import <CoreServices/CoreServices.h>
+#else
+#import <MobileCoreServices/MobileCoreServices.h>
+#endif
+
+// Currently Image/IO does not support WebP
+#define kSDUTTypeWebP ((__bridge CFStringRef)@"public.webp")
+// AVFileTypeHEIC is defined in AVFoundation via iOS 11, we use this without import AVFoundation
+#define kSDUTTypeHEIC ((__bridge CFStringRef)@"public.heic")
+
+@implementation NSData (ImageContentType)
+
++ (SDImageFormat)sd_imageFormatForImageData:(nullable NSData *)data {
+    if (!data) {
+        return SDImageFormatUndefined;
+    }
+    
+    // File signatures table: http://www.garykessler.net/library/file_sigs.html
+    uint8_t c;
+    [data getBytes:&c length:1];
+    switch (c) {
+        case 0xFF:
+            return SDImageFormatJPEG;
+        case 0x89:
+            return SDImageFormatPNG;
+        case 0x47:
+            return SDImageFormatGIF;
+        case 0x49:
+        case 0x4D:
+            return SDImageFormatTIFF;
+        case 0x52: {
+            if (data.length >= 12) {
+                //RIFF....WEBP
+                NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
+                if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
+                    return SDImageFormatWebP;
+                }
+            }
+            break;
+        }
+        case 0x00: {
+            if (data.length >= 12) {
+                //....ftypheic ....ftypheix ....ftyphevc ....ftyphevx
+                NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(4, 8)] encoding:NSASCIIStringEncoding];
+                if ([testString isEqualToString:@"ftypheic"]
+                    || [testString isEqualToString:@"ftypheix"]
+                    || [testString isEqualToString:@"ftyphevc"]
+                    || [testString isEqualToString:@"ftyphevx"]) {
+                    return SDImageFormatHEIC;
+                }
+            }
+            break;
+        }
+    }
+    return SDImageFormatUndefined;
+}
+
++ (nonnull CFStringRef)sd_UTTypeFromSDImageFormat:(SDImageFormat)format {
+    CFStringRef UTType;
+    switch (format) {
+        case SDImageFormatJPEG:
+            UTType = kUTTypeJPEG;
+            break;
+        case SDImageFormatPNG:
+            UTType = kUTTypePNG;
+            break;
+        case SDImageFormatGIF:
+            UTType = kUTTypeGIF;
+            break;
+        case SDImageFormatTIFF:
+            UTType = kUTTypeTIFF;
+            break;
+        case SDImageFormatWebP:
+            UTType = kSDUTTypeWebP;
+            break;
+        case SDImageFormatHEIC:
+            UTType = kSDUTTypeHEIC;
+            break;
+        default:
+            // default is kUTTypePNG
+            UTType = kUTTypePNG;
+            break;
+    }
+    return UTType;
+}
+
+@end

--
Gitblit v1.8.0