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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

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

Swift

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

Q&A

解決済

1回答

3232閲覧

エンコードした画像データをデコードする

sam3457

総合スコア52

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/01/23 11:43

データ型に変換した画像をuserdefaultsに保存して、userdefaultsからそのデータを取り出し、画像として表示したいのです。
データ型に変換してuserdefaultsに保存するところまでは出来ました。(以下、変換・保存時の処理)

swift

1let userDefaults = UserDefaults.standard 2 3 var data: NSData = NSData() 4 if let image = userIconImageView.image { 5 data = UIImageJPEGRepresentation(image, 0.1)! as NSData 6 } 7 let base64String = data.base64EncodedString(options: NSData.Base64EncodingOptions.lineLength64Characters) as String 8userDefaults.set(base64String, forKey: "image")

ここまでは出来たのですが、これを画像に戻す処理が調べて見たものの、分かりません、、

ご存知の方がいらっしゃったら、ご教授お願いいたします。
また、エンコードの処理も自分で調べたものをたどたどしく再現したものなので、あまり自信がありません。
もしよければこちらも、この書き方の方が効率がいい、短くまとまる、などありましたら、教えていただけると幸いです。

よろしくおねがいします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こういうのって対で記事になっていませんか?

Base64 to Data

Data
init(base64Encoded:options:)

Data to UIImage

UIImage
init(data:scale:)

なお、現在のコードではNSDataを使っていますが、Dataで問題ありませんので置き換えて下さい。

投稿2018/01/24 00:28

fuzzball

総合スコア16731

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

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

sam3457

2018/01/24 08:07

回答ありがとうございます! リサーチ不足、申し訳ありません。これからはいの一番にAppleのリファレンスを調べる様に心がけます。 そちらを参考に以下の様に書いたらきちんとデコードされた画像が表示されました。 不恰好かもしれませんが、、 let encodedData = userDefaults.object(forKey: "userIcon") if encodedData != nil { let decodedData = Data(base64Encoded: encodedData as! String, options: Data.Base64DecodingOptions.ignoreUnknownCharacters) let decodedImage = UIImage(data: decodedData! as Data) userIconImageView.image = decodedImage }
fuzzball

2018/01/24 08:23 編集

いや、リファレンスは使うものが分かってないと参照出来ないでしょうw まずネットで参考になるコードを探して、それを理解するときに見るものです。 例えばUserDefaultsを使うのであれば、 https://developer.apple.com/documentation/foundation/userdefaults にざっと目を通してみるとか。運が良ければ string(forKey:) というStringで取り出すメソッドがあることに気付けたりするわけです。
sam3457

2018/01/24 12:35

、、確かにそうですね笑 なるほど、、すごい参考になります! ありがとうございます!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問