Realmにid, userName, userImageを保存したいです。
idとuserNameは保存できたので画像に挑戦しています。
やりたい事
- 画像パスを取得して『画像パス』をRealmに保存したい
- その画像パスを使ってuserImageに表示したい
出来たこと
- 指定のImageViewをタップするとアルバムが起動
- アルバムの中から画像を選択
- アプリ内に表示
このアプリ内に表示した画像パスを取得してRealmに追加したいです。
そもそも可能なのでしょうか?また正しいやり方なのでしょうか。
詳しい方よろしくお願いします。
ViewController
1 2... 3 4@IBOutlet weak var userImage: UIImageView! 5 6override func viewDidLoad() { 7 super.viewDidLoad() 8 9 //ImageViewタップ認識ON 10 userImage.isUserInteractionEnabled = true 11 12.... 13 14@IBAction func imageTapGesture(_ sender: Any) { 15 16 changeImage() 17 } 18 19// 画像パス関連(テスト) 20 // DocumentディレクトリのfileURL取得 21 func getDocumentsURL() -> NSURL { 22 let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] as NSURL 23 return documentsURL 24 } 25 26 // ディレクトリのパスにファイル名をつなげてファイルのフルパスを作る 27 func fileInDocumentsDirectory(filename: String) -> String { 28 let fileURL = getDocumentsURL().appendingPathComponent(filename) 29 30 print(fileURL) 31 return fileURL!.path 32 } 33 34 func changeImage() { 35 36 let sourceType:UIImagePickerController.SourceType = UIImagePickerController.SourceType.photoLibrary 37 38 if UIImagePickerController.isSourceTypeAvailable(UIImagePickerController.SourceType.photoLibrary){ 39 40 let cameraPicker = UIImagePickerController() 41 cameraPicker.sourceType = sourceType 42 cameraPicker.delegate = self 43 44 self.present(cameraPicker, animated: true, completion: nil) 45 } 46 } 47 48 //アルバム画面で写真を選択した時 49 func imagePickerController(_ picker: UIImagePickerController,didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { 50 / 51 if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage { 52 53 self.userImage.image = image 54 55 self.dismiss(animated: true, completion: nil) 56 } 57 } 58
たとえば、過去問の
撮影した写真を保存するときにパスを取得したい
https://teratail.com/questions/248877
Photos.frameworkで取得したURLをImageViewで表示したい
https://teratail.com/questions/248953
のようなことを考えていらっしゃるのでしょうか。
コメントありがとうございます。
カメラ撮影→保存の機能は実装せず
アルバム内の画像のみアップロードする仕様を希望しております。
https://teratail.com/questions/248877の回答の追記にある
『...これで取れるのは画像の実態があるfile保存先URLだったのでちょっと違った。』の方を実装がしたいです。。
その実装は最初に私がコメントしたURLのうち二番目になると思いますのでご確認ください。
developer.apple.comの方ダウンロードしたのですがBuildできませんでした、、
回答1件
あなたの回答
tips
プレビュー