質問編集履歴

2

2020/11/16 11:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,205 +1 @@
1
- **実現したいこと**
2
-
3
-
4
-
5
- 以下のコードで、最後画像を保存するとき画像のフルパス(パス?)を取得することはできるのでしょうか?photo.Frameworkを使用すればできるとはなっていたのですが、良く分かりません。ご教授いただけるとありがたいです。
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
- ```import SwiftUI
14
-
15
- import UIKit
16
-
17
- import AVFoundation
18
-
19
- import Photos
20
-
21
-
22
-
23
- class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
24
-
25
-
26
-
27
- var picker = UIImagePickerController()
28
-
29
-
30
-
31
- override func viewDidLoad() {
32
-
33
- super.viewDidLoad()
34
-
35
-
36
-
37
-
38
-
39
- // フォトライブラリーから動画を取得
40
-
41
- picker.sourceType = UIImagePickerController.SourceType.photoLibrary
42
-
43
- picker.mediaTypes = ["public.movie"]
44
-
45
- picker.delegate = self
46
-
47
- present(picker, animated: true, completion: nil)
48
-
49
- }
50
-
51
-
52
-
53
- func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){
54
-
55
- dismiss(animated: true, completion: nil)
56
-
57
-
58
-
59
- guard let videoURL = info[UIImagePickerController.InfoKey.mediaURL] as? URL else {
60
-
61
- return
62
-
63
- }
64
-
65
- let asset = AVAsset(url: videoURL)
66
-
67
- let generator = AVAssetImageGenerator(asset: asset)
68
-
69
- generator.appliesPreferredTrackTransform = true
70
-
71
- // 1秒毎にUIImageを生成
72
-
73
-
74
-
75
- let floatTime = Float64(1)
76
-
77
- let time = CMTimeMakeWithSeconds(floatTime, preferredTimescale: 10)
78
-
79
- let image = try? generator.copyCGImage(at: time, actualTime: nil)
80
-
81
-
82
-
83
- //タップイベントを追加
84
-
85
- let imageView = UIImageView(frame: self.view.frame)
86
-
87
- imageView.image = UIImage(cgImage:image!)
1
+ 画像を保存する際に、画像のフルパスを取得したいです。(コードは消させていただきました。)
88
-
89
- print(asset.duration)
90
-
91
-
92
-
93
- imageView.isUserInteractionEnabled = true
94
-
95
- imageView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.saveImage(_:))))
96
-
97
-
98
-
99
-
100
-
101
- imageView.frame = CGRect(x: 10, y: 100, width: view.frame.width - 20, height: (view.frame.width-20)*3/4)
102
-
103
-
104
-
105
- self.view.addSubview(imageView)
106
-
107
-
108
-
109
-
110
-
111
- }
112
-
113
-
114
-
115
- @objc func saveImage(_ sender: UITapGestureRecognizer) {
116
-
117
-
118
-
119
- //タップしたUIImageViewを取得
120
-
121
- let targetImageView = sender.view! as! UIImageView
122
-
123
- // その中の UIImage を取得
124
-
125
- let targetImage = targetImageView.image!
126
-
127
- //保存するか否かのアラート
128
-
129
- let alertController = UIAlertController(title: "保存", message: "この画像を保存しますか?", preferredStyle: .alert)
130
-
131
- //OK
132
-
133
- let okAction = UIAlertAction(title: "OK", style: .default) { (ok) in
134
-
135
- //ここでフォトライブラリに画像を保存 (ここでパス取得?)
136
-
137
- UIImageWriteToSavedPhotosAlbum(targetImage, self, #selector(self.showResultOfSaveImage(_:didFinishSavingWithError:contextInfo:)), nil)
138
-
139
- }
140
-
141
- //CANCEL
142
-
143
- let cancelAction = UIAlertAction(title: "CANCEL", style: .default) { (cancel) in
144
-
145
- alertController.dismiss(animated: true, completion: nil)
146
-
147
- }
148
-
149
- //OKとCANCELを表示追加し、アラートを表示
150
-
151
- alertController.addAction(cancelAction)
152
-
153
- alertController.addAction(okAction)
154
-
155
- present(alertController, animated: true, completion: nil)
156
-
157
- }
158
-
159
- // 保存結果をアラートで表示
160
-
161
- @objc func showResultOfSaveImage(_ image: UIImage, didFinishSavingWithError error: NSError!, contextInfo: UnsafeMutableRawPointer) {
162
-
163
-
164
-
165
- var title = "保存完了"
166
-
167
- var message = "カメラロールに保存しました"
168
-
169
-
170
-
171
- if error != nil {
172
-
173
- title = "エラー"
174
-
175
- message = "保存に失敗しました"
176
-
177
- }
178
-
179
-
180
-
181
- let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
182
-
183
-
184
-
185
- // OKボタンを追加
186
-
187
- alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
188
-
189
-
190
-
191
- // UIAlertController を表示
192
-
193
- self.present(alert, animated: true, completion: nil)
194
-
195
- }
196
-
197
-
198
-
199
- }
200
-
201
- ```
202
-
203
-
204
-
205
- 環境:xcode12 、swift5

1

2020/11/16 11:33

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- **実現したいこと~~sw~~**
1
+ **実現したいこと**
2
2
 
3
3
 
4
4