From cd7ffb3b3c76f7211264be97ef2b54df577fed5f Mon Sep 17 00:00:00 2001 From: Ian Rahman Date: Mon, 8 Sep 2025 18:45:02 -0400 Subject: [PATCH] Add DNG as a valid photo filetype # Conflicts: # SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift --- .../Util/ImageMetadata/ImageMetadata.swift | 29 ++++++++++++++----- SignalServiceKit/Util/MimeTypeUtil.swift | 4 ++- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift b/SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift index ec04e6b6c73..7590cb63f26 100644 --- a/SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift +++ b/SignalServiceKit/Util/ImageMetadata/ImageMetadata.swift @@ -11,6 +11,7 @@ public enum ImageFormat: CustomStringConvertible { case tiff case jpeg case bmp + case dng case webp case heic case heif @@ -27,6 +28,8 @@ public enum ImageFormat: CustomStringConvertible { "ImageFormat_Jpeg" case .bmp: "ImageFormat_Bmp" + case .dng: + "ImageFormat_Dng" case .webp: "ImageFormat_Webp" case .heic: @@ -42,14 +45,24 @@ public enum ImageFormat: CustomStringConvertible { private var mimeTypes: (preferredMimeType: MimeType, alternativeMimeTypes: [MimeType]) { switch self { - case .png: (.imagePng, [.imageApng, .imageVndMozillaApng]) - case .gif: (.imageGif, []) - case .tiff: (.imageTiff, [.imageXTiff]) - case .jpeg: (.imageJpeg, []) - case .bmp: (.imageBmp, [.imageXWindowsBmp]) - case .webp: (.imageWebp, []) - case .heic: (.imageHeic, []) - case .heif: (.imageHeif, []) + case .png: + (.imagePng, [.imageApng, .imageVndMozillaApng]) + case .gif: + (.imageGif, []) + case .tiff: + (.imageTiff, [.imageXTiff]) + case .jpeg: + (.imageJpeg, []) + case .bmp: + (.imageBmp, [.imageXWindowsBmp]) + case .dng: + (.imageDng, []) + case .webp: + (.imageWebp, []) + case .heic: + (.imageHeic, []) + case .heif: + (.imageHeif, []) } } diff --git a/SignalServiceKit/Util/MimeTypeUtil.swift b/SignalServiceKit/Util/MimeTypeUtil.swift index 396870d937a..e3623da373c 100644 --- a/SignalServiceKit/Util/MimeTypeUtil.swift +++ b/SignalServiceKit/Util/MimeTypeUtil.swift @@ -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" @@ -74,7 +75,7 @@ public enum MimeTypeUtil { public static let supportedAudioUtiTypes: Set = Set(utiTypesForMimeTypes(supportedAudioMimeTypesToExtensionTypes.keys)) public static let supportedInputImageUtiTypes: Set = Set(utiTypesForMimeTypes(supportedImageMimeTypesToExtensionTypes.keys)) public static let supportedOutputImageUtiTypes: Set = 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 = Set(utiTypesForMimeTypes(supportedMaybeAnimatedMimeTypesToExtensionTypes.keys)) private static func utiTypesForMimeTypes>(_ mimeTypes: S, excluding excludedMimeTypes: Set? = nil) -> Set { var result = Set() @@ -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",