Convert Image to Base64

iOS

Convert JPEG to Base64

UIImageJPEGRepresentation/UIImagePNGRepresentation 將 UIImage 轉成 NSData,
再丟給 Base64 encode 處理。

// initialize
[Base64 initialize];
// resize: 150x150
NSData *imageData = UIImageJPEGRepresentation([self resizeImage:[info objectForKey:UIImagePickerControllerEditedImage] Size:CGSizeMake(150, 150)], 1.0);
NSString *strEncoded = [Base64 encode:imageData];

Haxe

Convert bytesData to BitmapData

Base64 decode 取得 BytesData 後,直接丟給 BitmapData.loadFromHaxeBytes 處理。

var bmd:BitmapData = BitmapData.loadFromHaxeBytes(Base64.decodeBytesData(data));
var bitmap:Bitmap = new Bitmap(bmd);
addChild(bitmap)

iOS

Convert String to Base64

丟給 sendEvent 時記得轉成 C string(char)。

[Base64 initialize];
NSString *str = @"hello world~大家好!!";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSString *strEncoded = [Base64 encode:data];

// pass c string: const char
sendEvent(2, [strEncoded cStringUsingEncoding:NSASCIIStringEncoding]);

Haxe

Output String
trace(Base64.decodeBytesData(data).toString());

Update 20131104

iOS7 之後內建 NSData 終於支援 Base64 encoding/decoding。

encode:
[[sourceString dataUsingEncoding:NSUTF8StringEncoding] base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
decode:
NSData *decodeData = [[NSData alloc] initWithBase64EncodedString:encodeString options:NSDataBase64DecodingIgnoreUnknownCharacters];
NSString *output = [[NSString alloc] initWithData:decodeData encoding:NSUTF8StringEncoding];