浏览代码

streamline image and gif sending a little bit, remove dcCompress()

cyberta 5 年之前
父节点
当前提交
090073ba7b
共有 1 个文件被更改,包括 15 次插入16 次删除
  1. 15 16
      deltachat-ios/Controller/ChatViewController.swift

+ 15 - 16
deltachat-ios/Controller/ChatViewController.swift

@@ -999,15 +999,8 @@ extension ChatViewController: MessagesDataSource {
 
     private func sendImage(_ image: UIImage, message: String? = nil) {
         DispatchQueue.global().async {
-            if let compressedImage = image.dcCompress() {
-                // at this point image is compressed by 85% by default
-                let pixelSize = compressedImage.imageSizeInPixel()
-                let path = DcUtils.saveImage(image: compressedImage)
-                let msg = DcMsg(viewType: DC_MSG_IMAGE)
-                msg.setFile(filepath: path, mimeType: "image/jpeg")
-                msg.setDimension(width: pixelSize.width, height: pixelSize.height)
-                msg.text = (message ?? "").isEmpty ? nil : message
-                msg.sendInChat(id: self.chatId)
+            if let path = DcUtils.saveImage(image: image) {
+                self.sendImageMessage(viewType: DC_MSG_IMAGE, image: image, filePath: path)
             }
         }
     }
@@ -1015,17 +1008,23 @@ extension ChatViewController: MessagesDataSource {
     private func sendAnimatedImage(url: NSURL) {
         if let path = url.path {
             let result = SDAnimatedImage(contentsOfFile: path)
-            if let result = result, let animatedImageData = result.animatedImageData {
-                let path = DcUtils.saveAnimatedImage(data: animatedImageData, suffix: "gif")
-                let msg = DcMsg(viewType: DC_MSG_GIF)
-                msg.setFile(filepath: path, mimeType: "image/gif")
-                let pixelSize = result.imageSizeInPixel()
-                msg.setDimension(width: pixelSize.width, height: pixelSize.height)
-                msg.sendInChat(id: self.chatId)
+            if let result = result,
+               let animatedImageData = result.animatedImageData,
+               let pathInDocDir = DcUtils.saveAnimatedImage(data: animatedImageData, suffix: "gif") {
+                self.sendImageMessage(viewType: DC_MSG_GIF, image: result, filePath: pathInDocDir)
             }
         }
     }
 
+    private func sendImageMessage(viewType: Int32, image: UIImage, filePath: String, message: String? = nil) {
+        let pixelSize = image.imageSizeInPixel()
+        let msg = DcMsg(viewType: viewType)
+        msg.setFile(filepath: filePath, mimeType: viewType == DC_MSG_GIF ? "image/gif" : "image/jpeg")
+        msg.setDimension(width: pixelSize.width, height: pixelSize.height)
+        msg.text = (message ?? "").isEmpty ? nil : message
+        msg.sendInChat(id: self.chatId)
+    }
+
     private func sendDocumentMessage(url: NSURL) {
         DispatchQueue.global().async {
             let msg = DcMsg(viewType: DC_MSG_FILE)