1.給NSString建一個分類
.h文件
/**
判斷該字符串是不是一個有效的URL
@return YES:是一個有效的URL or NO
*/
- (BOOL)isValidUrl;
/** 根據(jù)圖片名 判斷是否是gif圖 */
- (BOOL)isGifImage;
/** 根據(jù)圖片data 判斷是否是gif圖 */
+ (BOOL)isGifWithImageData: (NSData *)data;
/**
根據(jù)image的data 判斷圖片類型
@param data 圖片data
@return 圖片類型(png、jpg...)
*/
+ (NSString *)contentTypeWithImageData: (NSData *)data;
.m文件
- (BOOL)isValidUrl {
NSString *regex =@"[a-zA-z]+://[^\\s]*";
NSPredicate *urlTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex];
return [urlTest evaluateWithObject:self];
}
- (BOOL)isGifImage {
NSString *ext = self.pathExtension.lowercaseString;
if ([ext isEqualToString:@"gif"]) {
return YES;
}
return NO;
}
+ (BOOL)isGifWithImageData: (NSData *)data {
if ([[self contentTypeWithImageData:data] isEqualToString:@"gif"]) {
return YES;
}
return NO;
}
+ (NSString *)contentTypeWithImageData: (NSData *)data {
uint8_t c;
[data getBytes:&c length:1];
switch (c) {
case 0xFF:
return @"jpeg";
case 0x89:
return @"png";
case 0x47:
return @"gif";
case 0x49:
case 0x4D:
return @"tiff";
case 0x52:
if ([data length] < 12) {
return nil;
}
NSString *testString = [[NSString alloc] initWithData:[data subdataWithRange:NSMakeRange(0, 12)] encoding:NSASCIIStringEncoding];
if ([testString hasPrefix:@"RIFF"] && [testString hasSuffix:@"WEBP"]) {
return @"webp";
}
return nil;
}
return nil;
}