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

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

0回答

341閲覧

[swift4]AVFoundationを用いた画像表示

SKMT

総合スコア57

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

投稿2019/10/03 10:20

編集2019/10/21 02:16

前提・実現したいこと

AVFoundationを使って写真を撮影するアプリを作ったのですが
撮影した写真をその後加工するために一度データ型に保存して
加工後の写真を画面に表示させたいのですが、データ型に保存するやり方、
保存したとしてそれを画面に表示するがわかりません。

該当のソースコード

swift

1class ViewController: UIViewController { 2 // プレビュー用のビューとOutlet接続しておく 3 @IBOutlet weak var previewView: UIView! 4 // インスタンスの作成 5 var session = AVCaptureSession() 6 var photoOutputObj = AVCapturePhotoOutput() 7 // 通知センターを作る 8 let notification = NotificationCenter.default 9 10 var shareImage:UIImage? 11 12 override func viewDidLoad() { 13 super.viewDidLoad() 14 // セッション実行中ならば中断する 15 if session.isRunning { 16 return 17 } 18 // 入出力の設定 19 setupInputOutput() 20 // プレビューレイヤの設定 21 setPreviewLayer() 22 // セッション開始 23 session.startRunning() 24 // デバイスが回転したときに通知するイベントハンドラを設定する 25 notification.addObserver(self, 26 selector: #selector(self.changedDeviceOrientation(_:)), 27 name: NSNotification.Name.UIDeviceOrientationDidChange, object: nil) 28 } 29 30 // シャッターボタンで実行する 31 @IBAction func takePhoto(_ sender: Any) { 32 let captureSetting = AVCapturePhotoSettings() 33 captureSetting.flashMode = .auto 34 captureSetting.isAutoStillImageStabilizationEnabled = true 35 captureSetting.isHighResolutionPhotoEnabled = false 36 // キャプチャのイメージ処理はデリゲートに任せる 37 photoOutputObj.capturePhoto(with: captureSetting, delegate: self) 38 } 39 40 // 入出力の設定 41 func setupInputOutput(){ 42 //解像度の指定 43 session.sessionPreset = AVCaptureSession.Preset.photo 44 45 // 入力の設定 46 do { 47 //デバイスの取得 48 let device = AVCaptureDevice.default( 49 AVCaptureDevice.DeviceType.builtInWideAngleCamera, 50 for: AVMediaType.video, // ビデオ入力 51 position: AVCaptureDevice.Position.back) // バックカメラ 52 53 // 入力元 54 let input = try AVCaptureDeviceInput(device: device!) 55 if session.canAddInput(input){ 56 session.addInput(input) 57 } else { 58 print("セッションに入力を追加できなかった") 59 return 60 } 61 } catch let error as NSError { 62 print("カメラがない (error)") 63 return 64 } 65 66 // 出力の設定 67 if session.canAddOutput(photoOutputObj) { 68 session.addOutput(photoOutputObj) 69 } else { 70 print("セッションに出力を追加できなかった") 71 return 72 } 73 } 74 75 // プレビューレイヤの設定 76 func setPreviewLayer(){ 77 // プレビューレイヤを作る 78 let previewLayer = AVCaptureVideoPreviewLayer(session: session) 79 previewLayer.frame = view.bounds 80 previewLayer.masksToBounds = true 81 previewLayer.videoGravity = AVLayerVideoGravity.resizeAspect 82 // previewViewに追加する 83 previewView.layer.addSublayer(previewLayer) 84 }

試したこと

swift4アプリ開発入門ノートという参考書を読みながら写真を撮影して写真アプリに保存するアプリを作りました。

補足情報(FW/ツールのバージョンなど)

xcode9.2 swift4 iOS13

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

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

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

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

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

t_obara

2019/10/21 01:22

> 撮った写真を一度画面に表示させたい と記載されていますが、具体的な点がピンときません。シャッターボタンをタップすると、撮影した静止画を別のウィンドウに表示させ、保存するか否かを判断させるようなことを行いたいのでしょうか。 もう少しご自身が期待する処理について詳細に書き下していただいた方が、回答が得られやすいかと思います。 また、全体の機能のうち、どの部分ができないのかもご提示いただいた方が良いです。さらに「swift4アプリ開発入門ノート」を見ていない方も多いので、その参考書と、貴殿が期待する動作との違いなども付記されるとよろしいかと。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問