###前提・実現したいこと
iphoneのカメラで写真を撮影し、作成したアルバムに保存をするのですが
保存をする際に保存先のURLや、もしくはその画像を認識できるキーを取得することは可能なのでしょうか?
調べていると、一旦どこかに保存し、画像をカメラロールから選択することでパスを取得する例はたくさんあるのですが・・・
私がやりたいのは保存するタイミングで、取得したいのです。
しかし、どのタイミングで取得できるのかがわかりません。
参考サイト等なんでもかまいませんので、アドバイスをいただけたらと思います。
よろしくお願い致します。
###該当のソースコード
var image:UIImage! @IBOutlet weak var cameraView: UIImageView! @IBOutlet weak var textLabel: UILabel! //カメラボタンタップ @IBAction func cameraTap(_ sender: Any) { let sourceType:UIImagePickerControllerSourceType = UIImagePickerControllerSourceType.camera // カメラが利用可能かチェック if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera){ // インスタンスの作成 let cameraPicker = UIImagePickerController() cameraPicker.sourceType = sourceType cameraPicker.delegate = self self.present(cameraPicker, animated: true, completion: nil) } else{ print("エラーです") } } //アルバムボタンタップ @IBAction func albumTap(_ sender: Any) { image = cameraView.image if image != nil { //指定したアルバムに保存 let albumTitle = "Food" var theAlbum: PHAssetCollection? // アルバムを検索 let result = PHAssetCollection.fetchAssetCollections(with: PHAssetCollectionType.album, subtype: PHAssetCollectionSubtype.any, options: nil) result.enumerateObjects({(object, index, stop) in if let theCollection = object as? PHAssetCollection, theCollection.localizedTitle == albumTitle { theAlbum = theCollection } }) // アルバムにイメージを保存 if let anAlbum = theAlbum { PHPhotoLibrary.shared().performChanges({ let createAssetRequest = PHAssetChangeRequest.creationRequestForAsset(from: self.image!) let assetPlaceholder = createAssetRequest.placeholderForCreatedAsset! let albumChangeRequest = PHAssetCollectionChangeRequest(for: anAlbum) //albumChangeRequest!.addAssets([assetPlaceholder]) let enumeration: NSArray = [assetPlaceholder] albumChangeRequest!.addAssets(enumeration) //albumChangeRequest!.addAssets(assetPlaceholder as! NSFastEnumeration) }, completionHandler: nil) //ここで画像のパス等を取得できる? } } } // 書き込み完了結果の受け取り func image(_ image: UIImage, didFinishSavingWithError error: NSError!, contextInfo: UnsafeMutableRawPointer) { //print(image.) if error != nil { print(error.code) textLabel.text = "失敗" } else{ //print(image.) textLabel.text = "成功" } } // 撮影が完了時した時に呼ばれる func imagePickerController(_ imagePicker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage { cameraView.contentMode = .scaleToFill cameraView.image = pickedImage } //閉じる処理 imagePicker.dismiss(animated: true, completion: nil) albumButton.isEnabled = true } // 撮影がキャンセルされた時に呼ばれる func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { picker.dismiss(animated: true, completion: nil) }
###補足情報(言語/FW/ツール等のバージョンなど)
swift 3.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。