Image content types.

This commit is contained in:
Matthew Chen 2018-06-19 14:37:42 -04:00
parent 1607aa7f57
commit 463a323585
1 changed files with 7 additions and 8 deletions

View File

@ -2,8 +2,8 @@
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
//
#import "MIMETypeUtil.h"
#import "NSData+Image.h"
#import "MIMETypeUtil.h"
typedef NS_ENUM(NSInteger, ImageFormat) {
ImageFormat_Unknown,
@ -43,6 +43,9 @@ typedef NS_ENUM(NSInteger, ImageFormat) {
// load a .gif with a .png file extension.
//
// Instead, use the "magic numbers" in the file data to determine the image format.
//
// If the image has a declared MIME type, ensure that agrees with the
// deduced image format.
ImageFormat imageFormat = [self ows_guessImageFormat];
switch (imageFormat) {
case ImageFormat_Unknown:
@ -50,6 +53,9 @@ typedef NS_ENUM(NSInteger, ImageFormat) {
case ImageFormat_Png:
return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImagePng]);
case ImageFormat_Gif:
if (![self ows_hasValidGifSize]) {
return NO;
}
return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageGif]);
case ImageFormat_Tiff:
return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageTiff1] ||
@ -60,13 +66,6 @@ typedef NS_ENUM(NSInteger, ImageFormat) {
return (mimeType == nil || [mimeType isEqualToString:OWSMimeTypeImageBmp1] ||
[mimeType isEqualToString:OWSMimeTypeImageBmp2]);
}
if (imageFormat == ImageFormat_Gif) {
return [self ows_hasValidGifSize];
} else if (imageFormat == ImageFormat_Unknown) {
return NO;
} else {
return YES;
}
}
- (ImageFormat)ows_guessImageFormat