【问题标题】:get image form URL in ios not working从 ios 中的 URL 获取图像不起作用
【发布时间】: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

请给我任何想法。

【问题讨论】:

    标签: ios objective-c json post uiimageview


    【解决方案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 文件到我的项目所以请给我任何想法
    猜你喜欢
    • 2018-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-21
    相关资源
    最近更新 更多