从 ios 中的 URL 获取图像不起作用

Posted

技术标签:

【中文标题】从 ios 中的 URL 获取图像不起作用【英文标题】:get image form URL in ios not working 【发布时间】:2014-08-05 12:55:32 【问题描述】:

我尝试通过 JSON 将图像发布到服务器。第一个图像转换为 NSData,然后通过 Base64 将 NSData 转换为 NSString

NSData *imageData = UIImagePNGRepresentation(firstimage1.image);
  strEncoded = [Base64 encode:imageData];

然后将NSString(strEncoded) 传递给 JSON URL。

现在我需要获得相同的图像。我厌倦了这样的生活

NSString *geting =[diction valueForKey:@"dealimage"];
NSData *getdata=[[NSData alloc]initWithData:[NSData dataFromBase64String:geting]];
NSLog(@"good day %@",getdata);
dataimages=[UIImage imageWithData:getdata];

首先NSString通过Base64转换为NSData,然后NSData传递给UIImage(dataimages)。但我没有得到。我收到此错误:-

ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
Aug  4 17:45:43 Himansus-Mac-Pro.local DealsStart[4365] <Error>: ImageIO: PNG invalid code lengths set
Aug  4 17:45:43 Himansus-Mac-Pro.local DealsStart[4365] <Error>: ImageIO: PNG invalid PNG file: iDOT doesn't point to valid IDAT chunk
Aug  4 17:45:43 Himansus-Mac-Pro.local DealsStart[4365] <Error>: ImageIO: PNG invalid code lengths set

请给我任何想法。

【问题讨论】:

【参考方案1】:

试试这个方法

NSString *geting =[diction valueForKey:@"dealimage"];
NSData *decodedData = [[NSData alloc] initWithBase64EncodedString:geting options:0];

NSLog(@"%@", decodedData);

可能对你有帮助。

【讨论】:

感谢重播我会尝试【参考方案2】:

看来您必须从 JSON 字典中获取图像.. 所以你需要使用 base64 解码器而不是 URL,它将编码的字符串转换为 NSData。为此,您需要添加 base64 库。可通过Lib 获得

只需要加一句

NSData *image = [NSData dataWithBase64EncodedString:[jsonDictionary objectForKey:@"strImage"]]; imView.image = [UIImage imageWithData:image];

就是这样。

【讨论】:

感谢您使用代码时的回复,我在发布这样的 strEncoded = [Base64 encode:imageData] 的图像时遇到了一个问题;我收到此错误 Base64 undeclared error。但我添加了 Base64.h 和 Base64。 m 文件到我的项目所以请给我任何想法

以上是关于从 ios 中的 URL 获取图像不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从 https url ios 获取图像

Phonegap ios图像上传为formdata不起作用,

从 JSON url 下载图像不起作用。 [关闭]

使用 Alamofire 将图像上传到服务器不起作用

onActivityResult 图像 uri 不起作用

CSS 中的图像 URL 在 Laravel 7 中不起作用