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

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

新規登録して質問してみよう
ただいま回答率
87.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++と共存することが意図されています

解決済

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

bignnerSwift
bignnerSwift

総合スコア0

iOS

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

Xcode

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

Swift

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

1回答

0評価

0クリップ

3604閲覧

投稿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

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.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++と共存することが意図されています