如何获取图像的有效base64字符串

时间:2014-01-07 12:32:22

标签: ios objective-c xcode ios7

我使用以下代码来获取我的图像的base64编码字符串:

UIImage *image = [photoView image];
NSString *encoded = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];

图像是800 * 800像素,但生成的字符串太大,以至于当我将其粘贴到文本框中时会崩溃我的浏览器。我将它粘贴在Dreamweaver中以计算线条,它超过300.000行。这不可能是对的。如果我将相同的图片上传到this site,它会生成一个大约200行的base64字符串。

如何在目标c中生成'普通'base64字符串?我实际可以使用的一个......

正如Martin R建议我检查了UIImagePNGRepresentation(图像)返回的数据长度,它是4502370字节。这可能是问题的一部分。可能是在UIImageView中绘制图像并稍后检索它就像我正在做的那样在屏幕尺寸上返回一个图像?

2 个答案:

答案 0 :(得分:2)

使用NSDataBase64Encoding64CharacterLineLength将每行限制为64个字符(如文档中所述)。尝试:

NSString *encoded = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:0];

答案 1 :(得分:0)

base-64编码的字符串是二进制数据大小的1.37倍。因此:

800x800x4(32位RGBA)= 2,560,000字节

x 1.37 = 3,507,200字节

我不明白你为什么要将base-64编码的字符串粘贴到浏览器中?