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