【发布时间】:2014-01-07 12:32:22
【问题描述】:
我使用以下代码来获取我的图像的 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(image) 返回的数据长度,它是 4502370 字节。这可能是问题的一部分。会不会是在 UIImageView 中绘制图像并稍后检索它,就像我正在做的那样,会返回屏幕大小的图像?
【问题讨论】:
-
你可以试试:UIImageJPEGRepresentation(image, 0.9f)
-
为什么不从
NSData *data = UIImagePNGRepresentation(image)开始并检查[data length]以隔离问题? -
…所以这不是 Base64编码器的问题。
-
@MartinR 实际上,我正在从相机中检索图像,然后重新缩放它,但它似乎没有正确重新缩放。 image.size 正确缩小到 800*800,但是重新缩放后数据长度增加了....
-
您看到的任何差异都可能是压缩方面的差异。
标签: ios objective-c xcode ios7