こんにちは。
タイトルのような機能を実装したいです。下記のコードでは画像が表示されません。原因は何だと思いますか。
○保存(カメラロール→ディレクトリ)
swift
1let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] 2 3@IBAction func pictureButton(_ sender: Any) { 4 if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { 5 // 写真を選ぶビュー 6 let pickerView = UIImagePickerController() 7 // 写真の選択元をカメラロールにする 8 // 「.camera」にすればカメラを起動できる 9 pickerView.sourceType = .photoLibrary 10 // デリゲート 11 pickerView.delegate = self 12 // ビューに表示 13 self.present(pickerView, animated: true) 14 } 15 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 16 // 選択した写真を取得する 17 if let image = info[UIImagePickerControllerOriginalImage] as? UIImage { 18 if ccc == 500 { 19 let fileName = "image..." + String(describing: image) 20 saveImageToDocumentsDirectory(Image: image, filename: fileName) 21 array.append(fileName) 22 tableView.reloadData() 23 } else if ccc != 500 { 24 let fileName = "image..." + String(describing: image) 25 saveImageToDocumentsDirectory(Image: image, filename: fileName) 26 array.insert(fileName, at: ccc) 27 ccc = 500 28 tableView.reloadData() 29 } 30 // 写真を選ぶビューを引っ込める 31 self.dismiss(animated: true) 32 33 } 34 } 35 } 36 func saveImageToDocumentsDirectory(Image: UIImage, filename: String) -> Bool { // ファイルに画像を保存 37 if let data = UIImagePNGRepresentation(Image) { 38 let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] 39 let fileURL = documentsURL.appendingPathComponent(filename) 40 do { 41 try data.write(to: fileURL) 42 } catch { 43 //エラー処理 44 return false 45 } 46 } 47 return true 48 } 49
○取得
swift
1 2let fileName = array[indexPath.row].replacingOccurrences(of: "image...", with: "") 3let fileURL = documentsURL.appendingPathComponent(fileName) 4let imageData = try? Data(contentsOf: fileURL) 5let image = UIImage(data:imageData!) 6imageImage.image = image
array:StringにはStringの文とurlをStringに変換したものが入っています。
"image..."はそれらを区別するためにつけているものです。
実際にカメラロールから取得しても元の画面に戻るだけで何も画像は表示されませんでした。
上のコードでは何が原因で画像を保存または表示できなかったのでしょうか。
分かる方ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/20 22:07
2018/04/20 22:52
2018/04/21 12:46