From 064cbe65a8de8959494e055279aff5ae3635be55 Mon Sep 17 00:00:00 2001
From: Mustafa Merza <mustafa.merza95@gmail.com>
Date: Mon, 12 Aug 2024 13:26:52 +0300
Subject: [PATCH] - Moved compressing images to some required locations
 (compressing scan images crashes the app as the size is being altered when
 rendering the image).

---
 .../Data/Repositores/ScanSessionsRepository.swift          | 7 +++++--
 .../DocumentPreview/DocumentPreviewViewController.swift    | 4 +++-
 .../Modules/Documents/DocumentsTableViewController.swift   | 7 +++++--
 .../Modules/EditViewController/EditViewController.swift    | 5 ++++-
 .../Frameworks/CustomWeScan/Extensions/URL+Utils.swift     | 2 +-
 5 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/MiniScanner/Features/ScanSession/Data/Repositores/ScanSessionsRepository.swift b/MiniScanner/Features/ScanSession/Data/Repositores/ScanSessionsRepository.swift
index 6d29794..f2b666b 100644
--- a/MiniScanner/Features/ScanSession/Data/Repositores/ScanSessionsRepository.swift
+++ b/MiniScanner/Features/ScanSession/Data/Repositores/ScanSessionsRepository.swift
@@ -181,8 +181,11 @@ extension ScanSessionsRepository {
                let originalImage = item.newOriginalImage?.retrieveImage(),
                let renderedImage = item.newRenderedImage?.retrieveImage() {
                 
-                let newScannedItem = ScannedItem(originalImage: originalImage,
-                                                 renderImage: renderedImage,
+                let compressedOriginalImage = ImageCompressManager.compress(image: originalImage)
+                let compressedRenderedImage = ImageCompressManager.compress(image: renderedImage)
+                
+                let newScannedItem = ScannedItem(originalImage: compressedOriginalImage,
+                                                 renderImage: compressedRenderedImage,
                                                  quad: item.quad,
                                                  colorOption: item.colorOption,
                                                  type: .local)
diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
index 031406a..1822e44 100644
--- a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
+++ b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift
@@ -400,7 +400,9 @@ extension DocumentPreviewViewController: PHPickerViewControllerDelegate {
         
         images.forEach { image in
             
-            scannedItems.append(ScannedItem(originalImage: image, renderImage: image, type: .local))
+            let compressedImage = ImageCompressManager.compress(image: image)
+            
+            scannedItems.append(ScannedItem(originalImage: compressedImage, renderImage: compressedImage, type: .local))
         }
         
         if !scannedItems.isEmpty {
diff --git a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
index 7672360..34a6a5a 100644
--- a/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
+++ b/MiniScanner/Modules/Documents/DocumentsTableViewController.swift
@@ -526,11 +526,14 @@ extension DocumentsTableViewController: PHPickerViewControllerDelegate {
         
         images.forEach { image in
             
+            let compressedImage = ImageCompressManager.compress(image: image)
+            
             if let selectedFolder, selectedFolder != .allDocuments {
-                scannedItems.append(ScannedItem(originalImage: image, renderImage: image, type: .local))
+                
+                scannedItems.append(ScannedItem(originalImage: compressedImage, renderImage: compressedImage, type: .local))
             }
             else {
-                scannedItems.append(ScannedItem(originalImage: image, renderImage: image))
+                scannedItems.append(ScannedItem(originalImage: compressedImage, renderImage: compressedImage))
             }
         }
         
diff --git a/MiniScanner/Modules/EditViewController/EditViewController.swift b/MiniScanner/Modules/EditViewController/EditViewController.swift
index 90387a5..1230ef5 100644
--- a/MiniScanner/Modules/EditViewController/EditViewController.swift
+++ b/MiniScanner/Modules/EditViewController/EditViewController.swift
@@ -680,7 +680,10 @@ extension EditViewController {
     
     private func replacePageImage(image: UIImage, at index: Int) {
         
-        let scannedItem = ScannedItem(originalImage: image, renderImage: image, quad: nil)
+        let compressedImage = ImageCompressManager.compress(image: image)
+        
+        let scannedItem = ScannedItem(originalImage: compressedImage, renderImage: compressedImage, quad: nil)
+        
         scannedItem.colorOption = self.options.defaultColorRenderOption
         scannedItem.rotation = getCurrentRotationAngle()
         
diff --git a/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Extensions/URL+Utils.swift b/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Extensions/URL+Utils.swift
index 81cab1f..ffb06e0 100644
--- a/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Extensions/URL+Utils.swift	
+++ b/MiniScanner/Supporting Files/Frameworks/CustomWeScan/Extensions/URL+Utils.swift	
@@ -13,7 +13,7 @@ extension URL {
     
     func saveImage(image: UIImage?) -> URL? {
         
-        if let image: UIImage = image?.wxCompress(),
+        if let image,
            let jpgRepresentation = image.jpegData(compressionQuality: 1.0) {
             
             do  {
-- 
GitLab