🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Xcode

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

Swift

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

Q&A

解決済

1回答

916閲覧

ImageViewに格納されたデータを特定のアルバムへ保存したい

blacknill

総合スコア1

Xcode

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

Swift

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

0グッド

0クリップ

投稿2021/03/13 08:16

初めまして,こんにちは。
Swiftを学習するにあたりカメラアプリを作成しています。

前提・実現したいこと

○前提

Xcode ver12.4

storyboard:ViewController上に,
・撮影したものを表示するためのImageView
・カメラを起動するためのbutton
・ImageViewに表示されたものを指定したアルバム名へ保存するためのbutton
を配置しています。

現在の進捗としましては,
・ボタンを押してカメラ撮影をすること
・撮影したものをImageViewへ表示すること
は作動確認済みでございます。

○今後の展望

ボタンを押すことによってImageViewに表示されているものを指定したアルバム(アルバム名:custom)へ保存したいです。

該当のソースコード

Swift

1 2 // カメラを撮影する動作 3 4 @IBAction func CameraBtn(_ sender: UIButton) { 5 6 let sourceType:UIImagePickerController.SourceType = 7 UIImagePickerController.SourceType.camera 8 9 // カメラが利用可能かチェック 10 11 if UIImagePickerController.isSourceTypeAvailable( 12 UIImagePickerController.SourceType.camera){ 13 14 // インスタンスの作成 15 16 let cameraPicker = UIImagePickerController() 17 cameraPicker.sourceType = sourceType 18 cameraPicker.delegate = self 19 self.present(cameraPicker, animated: true, completion: nil) 20 21 } 22 23 } 24 25 // 撮影が完了した時に呼ばれる 26 27 func imagePickerController(_ imagePicker: UIImagePickerController, 28 didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){ 29 30 if let pickedImage = info[.originalImage] 31 as? UIImage { 32 33 CameraView.contentMode = .scaleAspectFit 34 CameraView.image = pickedImage 35 36 } 37 38 //閉じる処理 39 40 imagePicker.dismiss(animated: true, completion: nil) 41 42 } 43 44 // 撮影がキャンセルされた時に呼ばれる 45 46 func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 47 48 picker.dismiss(animated: true, completion: nil) 49 50 } 51 52 // データを保存する動作 53 54 @IBAction func SaveBtn(_ sender: UIButton) { 55 56 // 今回の質問部分 57 58 } 59

最後に

注)上記のコードは他の方が掲載されているものを元に作成しています。

今回,上記のコードを作成していた際に,「ImageViewに表示されているものを指定したアルバムへ保存するにはどのようにするのだろう?」と疑問を抱きました。

事前に作成されたアルバム(アルバム名:custom)へボタンを押した時に保存するにはどのようにプログラミングすればよろしいでしょうか。

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

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

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

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

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

blacknill

2021/03/13 09:11

ご返信ありがとうございます。 私も参考になると思い提示していただいたサイトを拝見したことがあります。 どのように応用して活用していくかを考えていますが手詰まりで…。
hoshi-takanori

2021/03/13 09:55

手詰まりというのは、具体的にどんな感じのコードを書いて、どの辺で行き詰まってるのでしょうか?
guest

回答1

0

ベストアンサー

「ImageViewに表示されているものを指定したアルバムへ保存するにはどのようにするのだろう?」と疑問を抱きました。

目標や課題は分割して取り組むのが良いかも。
例えば・・・

  1. UIImageViewに表示されている画像をUIImageとして取得してみる
  2. それをフォトライブラリ(いわゆるカメラロール)に保存してみる
  3. 保存されたアセットをアルバムに追加してみる

まずは1番から順番に解決するのが良いかと思います。
PhotoKitは非常に抽象的なフレームワークなので、ある程度概念を頭に入れとかないと辛いかもしれません。

  1. iOSのフォトライブラリの仕組み
  2. アルバムとは何か?

まずはこのあたりの理解をお勧めします。

投稿2021/03/13 23:58

errolizer

総合スコア441

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

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

blacknill

2021/03/15 06:06

返事遅くなりました。ご返信ありがとうございます。 明確な理解手順をご提示していただきましてありがとうございます。 そうですね。PhotoKitに関してまだまだ理解できていないので勉強してみます。
blacknill

2021/03/16 04:57

ご教示ありがとうございます。 なんとか目的の機能を作動することができました。 "Conditional cast from 'PHAssetCollection' to 'PHAssetCollection' always succeeds"と警告が表示されてはいますが動作はしております。 現在は上記の警告の解決策を模索していますが検討がつかない状況です。 今回疑問点を解決できた達成感を糧に今後も勉強を頑張っていきます。 また困った際にはご指導のほどよろしくお願いいたします。
errolizer

2021/03/16 05:04

その警告は既にPHAssetCollectionをPHAssetCollectionに型変換しようとした時に出ます。 なので不要な型変換をしなければ消えます。 「 as PHAssetCollection 」を削除してビルドしてみてください。
blacknill

2021/03/17 06:21

ご助言ありがとうございます。 「 as PHAssetCollection 」を削除し,対応する変数へ組み替えをすることで警告もなくなり作動することができました。 ひとつ理解が深まりました。重ねて御礼申し上げます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問