1

我的应用程序可以拍照或从相机胶卷中选择它们,使用UIImagePicker我将图片发送到ViewController用户可以裁剪图像的位置。

最终结果是UITableView带有名称和缩略图,每一行都指向全尺寸图片。缩略图是不同比例的原始图片。

这是我在裁剪后保存图片的方式:

[UIImageJPEGRepresentation(_justNowImage.image, 0.1) writeToFile:jpgPath atomically:NO];

这就是我将其打开为缩略图或全尺寸的方式。

_imageInPocket.image = [UIImage imageWithContentsOfFile:jpgPath];

如果我裁剪小图片一切正常,但我尝试裁剪大图片(超过 2 MB)应用程序会崩溃,可能是由于内存不足。

我的项目正在使用 ARC。我还需要以某种方式从内存中释放图像吗?我应该创建图像的小版本并将它们用作缩略图而不是加载所有原始图片UITableView并更改它们的比例以适应Cell

4

1 回答 1

1

也许您应该加载数据并将其转换为图像使用

[[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];
NSURL *url = [NSURL URLWithString:@"Your URL"];
NSURLRequest *theRequest = [NSURLRequest
    requestWithURL: url
    cachePolicy: NSURLRequestUseProtocolCachePolicy
    timeoutInterval: 60.0
];

当您使用此方法时,您将获得数据包中的图像。在此之后,您应该调用并收集所有数据包

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
 [imageData appendData:data];
}

在此之后,您需要将数据转换为图像并关闭连接

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
  UIImage *image = [UIImage imageWithData:imageData];
  imageView.image = image;
  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];
}
于 2013-03-04T08:08:46.260 回答