Skip to content

Commit ce33e9b

Browse files
authored
Merge pull request #317 from jadar/master
Add option to request lower resolution images from PHPhotoLibary
2 parents f78fbf8 + f3cf74d commit ce33e9b

4 files changed

Lines changed: 5 additions & 4 deletions

File tree

Source/AssetManager.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ open class AssetManager {
3636
}
3737
}
3838

39-
open static func resolveAsset(_ asset: PHAsset, size: CGSize = CGSize(width: 720, height: 1280), completion: @escaping (_ image: UIImage?) -> Void) {
39+
open static func resolveAsset(_ asset: PHAsset, size: CGSize = CGSize(width: 720, height: 1280), shouldPreferLowRes: Bool = false, completion: @escaping (_ image: UIImage?) -> Void) {
4040
let imageManager = PHImageManager.default()
4141
let requestOptions = PHImageRequestOptions()
42-
requestOptions.deliveryMode = .highQualityFormat
42+
requestOptions.deliveryMode = shouldPreferLowRes ? .fastFormat : .highQualityFormat
4343
requestOptions.isNetworkAccessAllowed = true
4444

4545
imageManager.requestImage(for: asset, targetSize: size, contentMode: .aspectFill, options: requestOptions) { image, info in

Source/Configuration.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import UIKit
5252
@objc public var allowPinchToZoom = true
5353
@objc public var allowedOrientations = UIInterfaceOrientationMask.all
5454
@objc public var allowVolumeButtonsToTakePicture = true
55+
@objc public var useLowResolutionPreviewImage = false
5556

5657
// MARK: Images
5758
@objc public var indicatorView: UIView = {

Source/ImageGallery/ImageGalleryView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ extension ImageGalleryView: UICollectionViewDelegate {
231231

232232
let asset = assets[(indexPath as NSIndexPath).row]
233233

234-
AssetManager.resolveAsset(asset, size: CGSize(width: 100, height: 100)) { image in
234+
AssetManager.resolveAsset(asset, size: CGSize(width: 100, height: 100), shouldPreferLowRes: configuration.useLowResolutionPreviewImage) { image in
235235
guard image != nil else { return }
236236

237237
if cell.selectedImageView.image != nil {

Source/ImageGallery/ImageGalleryViewDataSource.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ extension ImageGalleryView: UICollectionViewDataSource {
1717

1818
let asset = assets[(indexPath as NSIndexPath).row]
1919

20-
AssetManager.resolveAsset(asset, size: CGSize(width: 160, height: 240)) { image in
20+
AssetManager.resolveAsset(asset, size: CGSize(width: 160, height: 240), shouldPreferLowRes: configuration.useLowResolutionPreviewImage) { image in
2121
if let image = image {
2222
cell.configureCell(image)
2323

0 commit comments

Comments
 (0)