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

时间:2014-08-05 12:55:32

标签: ios objective-c json post uiimageview

我尝试通过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

请给我任何想法。

2 个答案:

答案 0 :(得分:0)

试试这种方式

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

NSLog(@"%@", decodedData);

可能对你有所帮助。

答案 1 :(得分:0)

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

获取

只需要添加一个句子

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

多数民众赞成。