如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?
Posted
技术标签:
【中文标题】如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?【英文标题】:How to access images taken from camera only in Swift like a gallery in iOS? 【发布时间】:2019-06-24 10:17:32 【问题描述】:在 android 中,我们仅获得相机图像,即当我们以编程方式打开图库时,但在 ios 中,当我们打开照片时,我们会获得相机胶卷图像和其他不需要的图像,例如 whatsapp 图像。打开图库时如何仅过滤相机图像?
我在 Swift 4 中的尝试如下所示:
func getPhotosAndVideos()
let fetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate",ascending: false)]
fetchOptions.predicate = NSPredicate(format: "mediaType = %d", PHAssetMediaType.image.rawValue)
print("fetchOptions : ", fetchOptions)
let assets = PHAsset.fetchAssets(with: fetchOptions)
var results = NSMutableArray()
assets.enumerateObjects (obj, idx, bool) -> Void in
results.add(obj)
let cameraRollAssets = results.filtered(using: NSPredicate(format: "sourceType == %@", argumentArray: [3]))
results = NSMutableArray(array: cameraRollAssets)
print("cameraRollAssets : ", cameraRollAssets)
print("results : ", results)
我只想要手机拍摄的相机图像。
【问题讨论】:
你好@devNewbie,这个问题的堆栈溢出有很多答案。添加问题后您应该先搜索。 【参考方案1】:你可以使用苹果默认的 UIImagePickerController() 来做到这一点
class testViewController: UIViewController
let picker = UIImagePickerController()
override func viewDidLoad()
super.viewDidLoad()
@IBAction openPicker(_ sender: UIButton)
self.picker.sourceType = .savedPhotosAlbum
self.picker.delegate = self
self.present(self.picker, animated: true, completion: nil)
extension testViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
print(info)
【讨论】:
以上是关于如何仅在 Swift 中访问从相机拍摄的图像,就像 iOS 中的画廊一样?的主要内容,如果未能解决你的问题,请参考以下文章
仅在 Pixel_Api_26 模拟器中从相机拍摄照片后,无法在 ImageView 中放置图像