Three.jsを使って、作ってみた

プログラミング関連の事を色々書いています(^^) 週末はレストランやコンビニのお菓子のことを書いています。

Swift Base64方式でエンコード・デコードする

今回は、swiftBase64方式でエンコード・デコードする方法を書きます。


ちなみにBase64というのは、データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式である。MIMEによって規定されていて、7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている。

と、ウィキペディアに書かれています。


まず始めに、Base64で、文字列をエンコードする方法を書きます。

 let text: String = "Test1"

//エンコード
let data = text.dataUsingEncoding(NSUTF8StringEncoding)
let base64Str = data!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)
        
println(base64Str)

実行結果
f:id:gupuru:20150112175221p:plain

「Test1」という文字列を、Base64エンコードしています。


今度は、デコードする方法を書きます。

let base64Text = "VGVzdDE="

let decodedData = NSData(base64EncodedString: base64Text, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
 if let decodedString = NSString(data: decodedData!, encoding: NSUTF8StringEncoding) {
    println(decodedString)
  }

実行結果
f:id:gupuru:20150112175727p:plain

Base64エンコードされた「VGVzdDE=」を文字列にデコードしています。


最後に、画像(UIImage)をBase64方式でエンコードする方法を書きます。

var jpgData: NSData = NSData(data: UIImageJPEGRepresentation(UIImage(named: "test"), 0.5))

jpgData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

 println(jpgData)

実行結果
f:id:gupuru:20150112180443p:plain

UIImageJPEGRepresentationという関数を使って、NSDataを作り、それをエンコードします。
UIImageJPEGRepresentationの第1引数に「UIImage」第2引数に圧縮率を指定してます。


これで、終わります。


参考サイト
base64エンコード・デコード(「Test1」をbase64でエンコード)
Swift: Base64 方式でエンコードする - Sarabande.jp
iPhoneアプリ開発・アプリ内への写真の保存 | hiro2 studio別館


Swiftは、まだまだ勉強中ですので、間違っているかもしれません。間違っていましたら、ご指摘をお願いしますm(_ _)m