Sfoglia il codice sorgente

streamline saving images and gifs

cyberta 5 anni fa
parent
commit
fd691a64ce
2 ha cambiato i file con 6 aggiunte e 14 eliminazioni
  1. 5 13
      DcCore/DcCore/Helper/DcUtils.swift
  2. 1 1
      DcShare/Helper/ShareAttachment.swift

+ 5 - 13
DcCore/DcCore/Helper/DcUtils.swift

@@ -62,23 +62,15 @@ public struct DcUtils {
     }
 
     public static func saveImage(image: UIImage) -> String? {
-        let timestamp = Double(Date().timeIntervalSince1970)
-        guard let directory = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask,
-                                                           appropriateFor: nil, create: false) as NSURL,
-            let data = image.isTransparent() ? image.pngData() : image.jpegData(compressionQuality: 1.0),
-            let path = directory.appendingPathComponent("\(timestamp).jpg")
-            else { return nil }
-
-        do {
-            try data.write(to: path)
-            return path.relativePath
-        } catch {
-            DcContext.shared.logger?.info(error.localizedDescription)
+        let suffix = image.isTransparent() ? "png" : "jpg"
+        guard let data = image.isTransparent() ? image.pngData() : image.jpegData(compressionQuality: 1.0) else {
             return nil
         }
+
+        return saveImage(data: data, suffix: suffix)
     }
 
-    public static func saveAnimatedImage(data: Data, suffix: String) -> String? {
+    public static func saveImage(data: Data, suffix: String) -> String? {
         let timestamp = Double(Date().timeIntervalSince1970)
         guard let directory = try? FileManager.default.url(for: .documentDirectory, in: .userDomainMask,
                                                            appropriateFor: nil, create: false) as NSURL,

+ 1 - 1
DcShare/Helper/ShareAttachment.swift

@@ -79,7 +79,7 @@ class ShareAttachment {
                 self.dcContext.logger?.debug("Unexpected data: \(type(of: data))")
             }
             if let result = result, let animatedImageData = result.animatedImageData {
-                let path = DcUtils.saveAnimatedImage(data: animatedImageData, suffix: "gif")
+                let path = DcUtils.saveImage(data: animatedImageData, suffix: "gif")
                 let msg = DcMsg(viewType: DC_MSG_GIF)
                 msg.setFile(filepath: path)
                 self.messages.append(msg)