From 1d01eaaf98e566d14e084d297296f2ed09b1af41 Mon Sep 17 00:00:00 2001 From: Mustafa Merza <mustafa.merza95@gmail.com> Date: Sun, 11 Aug 2024 13:09:17 +0300 Subject: [PATCH] - Added displaying image compress view to compare between compression methods. --- MiniScanner/Extensions/UIImage+Images.swift | 2 ++ .../DocumentPreviewViewController.swift | 15 +++++++++++++++ .../ScannedItemPagerViewCell.swift | 15 +++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/MiniScanner/Extensions/UIImage+Images.swift b/MiniScanner/Extensions/UIImage+Images.swift index e33bbe0..d05180e 100644 --- a/MiniScanner/Extensions/UIImage+Images.swift +++ b/MiniScanner/Extensions/UIImage+Images.swift @@ -42,6 +42,8 @@ extension UIImage { static let squareAndPencil = UIImage(systemName: "square.and.pencil") + static let photoStack = UIImage(systemName: "photo.stack") + static let share = UIImage(systemName: "square.and.arrow.up")?.tint(with: .mainBlue) static let eye = UIImage(systemName: "eye") diff --git a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift index 3bcca14..1797c22 100644 --- a/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift +++ b/MiniScanner/Modules/DocumentPreview/DocumentPreviewViewController.swift @@ -1,4 +1,5 @@ import UIKit +import SwiftUI import PDFKit import PhotosUI import VisionKit @@ -256,6 +257,20 @@ extension DocumentPreviewViewController: ScannedItemPagerViewCellDelegate { func delete(at index: Int) { displayDeletePageDialog(at: index) } + + func compress(at index: Int) { + displayCompressImage(at: index) + } + + private func displayCompressImage(at index: Int) { + + if let image = session.scannedItems[index].newRenderedImage?.retrieveImage() { + + let imageCompressController = UIHostingController(rootView: ImageCompressView(image: image)) + + present(imageCompressController, animated: true) + } + } } // MARK: - UIPrintInteractionControllerDelegate diff --git a/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift b/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift index 8fe0932..f4659b3 100644 --- a/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift +++ b/MiniScanner/Modules/DocumentPreview/ScannedItemPagerViewCell.swift @@ -12,6 +12,7 @@ protocol ScannedItemPagerViewCellDelegate: AnyObject { func delete(at: Int) func preview(at: Int) func select(at: Int) + func compress(at: Int) } class ScannedItemPagerViewCell: FSPagerViewCell { @@ -53,6 +54,8 @@ class ScannedItemPagerViewCell: FSPagerViewCell { view.addArrangedSubview(preview) view.addArrangedSubview(trash) + view.addArrangedSubview(compress) + view.translatesAutoresizingMaskIntoConstraints = false return view @@ -76,6 +79,12 @@ class ScannedItemPagerViewCell: FSPagerViewCell { return button }() + lazy var compress: UIButton = { + var button = getButton(image: .photoStack!) + button.addTarget(self, action: #selector(compressTapped), for: .touchUpInside) + return button + }() + func configure(with scannedItem: ScannedItem, at index: Int, delegate: ScannedItemPagerViewCellDelegate) { @@ -126,6 +135,12 @@ extension ScannedItemPagerViewCell { } } + @objc private func compressTapped() { + if let index { + cellDelegate?.compress(at: index) + } + } + private func getButton(image: UIImage) -> UIButton { let button = UIButton(frame: CGRect(x: 0, y: 0, width: 24, height: 24)) -- GitLab