前提・実現したいこと
imagePickerControllerで撮影した写真を、UIImageViewに表示し、
そのUIImageViewに表示した写真を、Saveボタンを押したときに、フォトライブラリに保存する、という処理になっているのですが、
フォトライブラリに保存するときに、保存するURL(ファイルパス)などを取得することはできるのでしょうか。
参考になる記事、などでも構いませんので、アドバイスなど、よろしくお願いいたします。
該当のソースコード
Swift
1 2 let defaults = UserDefaults.standard 3 4@IBAction func plusButton(_ sender: UIButton) { 5 6 // カメラが利用可能かチェック 7 if UIImagePickerController.isSourceTypeAvailable(.camera) { 8 print("カメラは利用できます") 9 10 let imagePickerController = UIImagePickerController() 11 12 imagePickerController.sourceType = .camera 13 14 imagePickerController.delegate = self 15 16 present(imagePickerController, animated: true, completion: nil) 17 } else { 18 print("カメラは利用できません") 19 } 20 21 } 22 23 24 // 撮影が完了時した時に呼ばれる 25 func imagePickerController(_ imagePicker: UIImagePickerController,didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){ 26 27 if let pickedImage = info[.originalImage] as? UIImage { 28 pictureImage.contentMode = .scaleAspectFit 29 pictureImage.image = pickedImage 30 } 31 //閉じる処理 32 imagePicker.dismiss(animated: true, completion: nil) 33 } 34 35 // 撮影がキャンセルされた時に呼ばれる 36 func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 37 picker.dismiss(animated: true, completion: nil) 38 } 39 40 //写真・文字を保存 41 @IBAction func savePicture(_ sender : AnyObject) { 42 43 //Userdefaults - Save 44 defaults.set(nametextField.text!, forKey: "name") 45 defaults.set(colortextField.text!, forKey: "color") 46 defaults.set(typetextField.text!, forKey: "type") 47 defaults.set(textView.text!, forKey: "memo") 48 49 let image: UIImage! = pictureImage.image 50 51 if image != nil { 52 UIImageWriteToSavedPhotosAlbum( 53 image, 54 self, 55 #selector(plusViewController.image(_:didFinishSavingWithError:contextInfo:)), 56 nil) 57 } 58 print("保存完了") 59 60 // showで画面遷移の場合はこれを記載 61 // dismiss(animated: true, completion: nil) 62 63 // //保存が完了したことを知らせるためのHUD 64 // HUD.flash(.success) 65 66 } 67 68 // 書き込み完了結果の受け取り 69 @objc func image(_ image: UIImage, didFinishSavingWithError error: NSError!, contextInfo: UnsafeMutableRawPointer) { 70 if error != nil { 71 print(error.code) 72 } 73 } 74 75 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 76 77 self.pictureImage.image = image as? UIImage 78 79 picker.dismiss(animated: true, completion: nil) 80 }
補足情報(FW/ツールのバージョンなど)
Xcode 11.3.1
こちらの方 (https://teratail.com/questions/82749)の記事と、質問の内容はほぼ同じですが、
この方の自己解決方法である、**「保存する前にIdentifierを取得する」**という処理がよくわかりません。
よろしくお願いいたします。
追記(2020/03/24)
取得したパスから画像に表示させる方法(https://teratail.com/questions/248953)の回答を募集しています。(解決済み)
こちらも合わせてよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/23 09:09 編集
2020/03/23 09:10
2020/03/24 00:54
2020/03/24 03:29