質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2163閲覧

撮影した写真を保存するときにパスを取得したい

rea_sna

総合スコア32

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/03/23 08:28

編集2021/02/02 12:36

前提・実現したいこと

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)の回答を募集しています。(解決済み)
こちらも合わせてよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これじゃないですかね?

Photos.frameworkで画像を保存して保存先を取得
https://qiita.com/Takumi_Mori/items/0e380012ec4c551bdb75

投稿2020/03/23 08:32

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rea_sna

2020/03/23 09:09 編集

解決しました。
rea_sna

2020/03/23 09:10

ありがとうございます。 このURLから画像を表示するときは、どのようにすればできますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問