获取损坏的 Base64 编码图像

Posted

技术标签:

【中文标题】获取损坏的 Base64 编码图像【英文标题】:Getting Corrupt Base64 Encoded Image 【发布时间】:2014-04-01 06:42:27 【问题描述】:

我尝试过 google 和 ***,但无法得到满意的答案

    我已成功使用 base64 对图像进行编码,我已检查在线 base64 格式化程序中的编码字符串并在输出中获取我的图像,因此我的编码工作正常。

2 解码时出现以下错误.....

<Error>: ImageIO: JPEG Unsupported marker type 0x6c 
<Error>: ImageIO: JPEG Corrupt JPEG data: 1 extraneous bytes before marker 0x6c

我正在使用下面的代码来解码图像

NSString *imageURL  =  [imagename objectAtIndex:indexPath.row];

NSData *imageData   =  [Base64 decode:imageURL];

ImageView.image     =  [UIImage imageWithData:imageData];

任何建议和建议将不胜感激......

【问题讨论】:

URL 是 base-64 编码的?你确定吗? 是的,看起来您需要从 url 中提取该数据,然后从 base64 解码该数据...如果您知道该数据是 base64 编码的。 @***foe- 不,我没有 URL,我只有这样的编码字符串 (eD6VIWApmQ/PGO1RPMACD0qN5woxVV5Sx+XmgCUy/NwacJjgcXZnFuCDipo0KEdx3qe4gGW4wc01OQRjpxTSsrir1Odq) 要上传到服务器并尝试以图像格式下载该编码字符串. 【参考方案1】:

试试这个...

NSString *imageString  =  [imagename objectAtIndex:indexPath.row];

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"data:image/png;base64,%@",imageString]];

NSData *imageData = [NSData dataWithContentsOfURL:url];

ImageView.image = [UIImage imageWithData:imageData];

【讨论】:

@"data:image/png;base64,%@" 是网址吗? 它是一个 URI 方案 en.wikipedia.org/wiki/Data_URI_scheme - 当我有一个 base64 编码的字符串时,对我来说是一种享受 嗯,很有趣。干杯。 @Flexicoder- 感谢您的回复,但仍然收到相同的错误

以上是关于获取损坏的 Base64 编码图像的主要内容,如果未能解决你的问题,请参考以下文章

获取 Base64 编码的图像并使用 ExpressJS 作为图像发送

将 Base64 编码图像加密为另一个有效的 Base64 编码图像

如何使用 javascript 获取 base64 编码图像的地址

如何从 html 图像中获取 base64 编码数据

上传到 S3 的 base64 图像损坏

用于上传的 Swift 3 base64 编码图像