Skip to content

Instantly share code, notes, and snippets.

@schevgeny
Forked from pakisha/.swift
Created January 26, 2023 14:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save schevgeny/6a872dd460235f89daa26990d518ec4d to your computer and use it in GitHub Desktop.
Save schevgeny/6a872dd460235f89daa26990d518ec4d to your computer and use it in GitHub Desktop.
PHAsset
extension PHAsset {
// MARK: - Public methods
func getAssetThumbnail(size: CGSize) -> UIImage {
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
var thumbnail = UIImage()
option.isSynchronous = true
manager.requestImage(for: self, targetSize: size, contentMode: .aspectFill, options: option, resultHandler: {(result, info)->Void in
thumbnail = result!
})
return thumbnail
}
func getOrginalImage(complition:@escaping (UIImage) -> Void) {
let manager = PHImageManager.default()
let option = PHImageRequestOptions()
var image = UIImage()
manager.requestImage(for: self, targetSize: PHImageManagerMaximumSize, contentMode: .default, options: option, resultHandler: {(result, info)->Void in
image = result!
complition(image)
})
}
func getImageFromPHAsset() -> UIImage {
var image = UIImage()
let requestOptions = PHImageRequestOptions()
requestOptions.resizeMode = PHImageRequestOptionsResizeMode.exact
requestOptions.deliveryMode = PHImageRequestOptionsDeliveryMode.highQualityFormat
requestOptions.isSynchronous = true
if (self.mediaType == PHAssetMediaType.image) {
PHImageManager.default().requestImage(for: self, targetSize: PHImageManagerMaximumSize, contentMode: .default, options: requestOptions, resultHandler: { (pickedImage, info) in
image = pickedImage!
})
}
return image
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment