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

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回答

4816閲覧

Swift カメラで撮影した画像の保存先パスを取得したい

bignnerSwift

総合スコア20

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クリップ

投稿2017/07/04 00:35

###前提・実現したいこと
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

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

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

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

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

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

guest

回答1

0

自己解決

回答を頂く前ですが、解決致しました。
保存する前にIdentifierを取得することで一意に認識することができました。

投稿2017/07/04 01:40

bignnerSwift

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問