Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public enum ImageFormat: CustomStringConvertible {
case tiff
case jpeg
case bmp
case dng
case webp
case heic
case heif
Expand All @@ -30,6 +31,8 @@ public enum ImageFormat: CustomStringConvertible {
"ImageFormat_Jpeg"
case .bmp:
"ImageFormat_Bmp"
case .dng:
"ImageFormat_Dng"
case .webp:
"ImageFormat_Webp"
case .heic:
Expand All @@ -51,6 +54,8 @@ public enum ImageFormat: CustomStringConvertible {
return MimeType.imageJpeg
case .bmp:
return MimeType.imageBmp
case .dng:
return MimeType.imageDng
case .webp:
return MimeType.imageWebp
case .heic:
Expand All @@ -66,7 +71,7 @@ public enum ImageFormat: CustomStringConvertible {
switch self {
case .unknown:
return false
case .png, .tiff, .jpeg, .bmp, .webp, .heic, .heif:
case .png, .tiff, .jpeg, .bmp, .dng, .webp, .heic, .heif:
return true
case .gif:
return source.ows_hasValidGifSize
Expand Down Expand Up @@ -98,6 +103,9 @@ public enum ImageFormat: CustomStringConvertible {
guard let mimeType else { return true }
return (mimeType.caseInsensitiveCompare(MimeType.imageBmp.rawValue) == .orderedSame ||
mimeType.caseInsensitiveCompare(MimeType.imageXWindowsBmp.rawValue) == .orderedSame)
case .dng:
guard let mimeType else { return true }
return mimeType.caseInsensitiveCompare(MimeType.imageDng.rawValue) == .orderedSame
case .webp:
guard let mimeType else { return true }
return mimeType.caseInsensitiveCompare(MimeType.imageWebp.rawValue) == .orderedSame
Expand Down
4 changes: 3 additions & 1 deletion SignalServiceKit/Util/MimeTypeUtil.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public enum MimeType: String {
case applicationZip = "application/zip"
case imageApng = "image/apng"
case imageBmp = "image/bmp"
case imageDng = "image/x-adobe-dng"
case imageGif = "image/gif"
case imageHeic = "image/heic"
case imageHeif = "image/heif"
Expand Down Expand Up @@ -74,7 +75,7 @@ public enum MimeTypeUtil {
public static let supportedAudioUtiTypes: Set<String> = Set(utiTypesForMimeTypes(supportedAudioMimeTypesToExtensionTypes.keys))
public static let supportedInputImageUtiTypes: Set<String> = Set(utiTypesForMimeTypes(supportedImageMimeTypesToExtensionTypes.keys))
public static let supportedOutputImageUtiTypes: Set<String> = Set(utiTypesForMimeTypes(supportedImageMimeTypesToExtensionTypes.keys,
excluding: [MimeType.imageWebp.rawValue, MimeType.imageHeic.rawValue, MimeType.imageHeif.rawValue]))
excluding: [MimeType.imageWebp.rawValue, MimeType.imageHeic.rawValue, MimeType.imageHeif.rawValue, MimeType.imageDng.rawValue]))
public static let supportedAnimatedImageUtiTypes: Set<String> = Set(utiTypesForMimeTypes(supportedMaybeAnimatedMimeTypesToExtensionTypes.keys))
private static func utiTypesForMimeTypes<S: Sequence<String>>(_ mimeTypes: S, excluding excludedMimeTypes: Set<String>? = nil) -> Set<String> {
var result = Set<String>()
Expand Down Expand Up @@ -188,6 +189,7 @@ public enum MimeTypeUtil {
MimeType.imageXTiff.rawValue: "tif",
MimeType.imageBmp.rawValue: "bmp",
MimeType.imageXWindowsBmp.rawValue: "bmp",
MimeType.imageDng.rawValue: "dng",
MimeType.imageHeic.rawValue: "heic",
MimeType.imageHeif.rawValue: "heif",
MimeType.imageWebp.rawValue: "webp",
Expand Down