繁体   English   中英

如何将NSData转换为UIImage?

[英]How to convert NSData in to UIImage?

我已经成功将UIImage转换为NSData并使用SBJson Web服务将其发送到服务器。 我正在使用此代码:

img=mainImage.image;
NSData *imgdata=UIImagePNGRepresentation(img);

NSString *post =[[NSString alloc] initWithFormat:@"gid=%@&image=%@",[lblgid text],imgdata];

NSURL *url=[NSURL URLWithString:@"http://www.abchjahdkahdakjskahdk/updategameimage.php"];

这里img是UIImage, mainImage是UIImageView。 从这一点到现在一切都很好。 现在在另一端,我必须要解决那里的图像问题。 我正在使用此代码:

 NSData *imgdata=[abc valueForKey:@"image"];

    imge = [UIImage imageWithData:imgdata];

    imgview=[[UIImageView alloc]initWithImage:imge];

当我打印imgdata时,它返回的数据与我从另一端发送的数据相同,但是当我尝试将此数据转换回UIImage时(上面代码的第二行),它抛出了异常。

2013-01-22 14:23:43.298 Drase [946:11303]-[__ NSArrayI length]:无法识别的选择器已发送到实例0x7566800 2013-01-22 14:23:43.298 Drase [946:11303] *由于未捕获而终止了应用程序异常'NSInvalidArgumentException',原因: ' - [__ NSArrayI长度]:无法识别的选择发送到实例0x7566800' *第一掷调用堆栈:(0x1ce1012 0x111ee7e 0x1d6c4bd 0x1cd0bbc 0x1cd094e 0x1cb1b2 0x881f3 0x87ef4 0x1c659 0x1132705 0x69920 0x698b8 0x12a671 0x12abcf 0x129d38 0x9933f 0x99552 0x773aa 0x68cf8 0x1c3cdf9 0x1c3cad0 0x1c56bf5 0x1c56962 0x1c87bb6 0x1c86f44 0x1c86e1b 0x1c3b7e3 0x1c3b668 0x6665c 0x29d2 0x2905)libc ++ abi.dylib:终止调用引发异常。

我没有针对此问题的任何解决方案,请帮助我。

我认为abc是NSArray类型,即不可变,当您执行此行时

imge = [UIImage imageWithData:imgdata];

由于imgdata使用abc NSArray引用

在这里,您间接尝试修改它,这就是为什么它调用[__NSArrayI length] 但是实际上没有这种方法,因为我们可以计算NSArray但不能测量Length。这意味着没有这样的方法,这就是为什么它会产生错误

[__NSArrayI length]: unrecognized selector sent to instance

更新1:

尝试做这样的事情:

NSData *imgdata=[[abc valueForKey:@"image"]objectAtIndex:0];

尝试

  NSData *data = yourData;

  UIImage *image = [UIImage imageWithData:data];

要么

  NSData *data = yourData;

  UIImage *image = [[UIImage alloc] initWithData:data];
  ....
  [image release];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM