我的应用可以拍照或从相机胶卷中选择它们,使用UIImagePicker
我将照片发送到ViewController
,然后用户可以裁剪图像。
最终结果是UITableView
,其中包含名称和缩略图,每行都会显示完整尺寸的图片。缩略图是不同比例的原始图片。
这是我在裁剪后保存照片的方式:
[UIImageJPEGRepresentation(_justNowImage.image, 0.1) writeToFile:jpgPath atomically:NO];
这是我打开缩略图或全尺寸的方式。
_imageInPocket.image = [UIImage imageWithContentsOfFile:jpgPath];
如果我裁剪小图片一切正常,但我尝试裁剪大图(超过2 MB)应用程序将崩溃,可能是因为内存不足。
我的项目正在使用ARC。我还需要以某种方式从内存中释放图像吗?
我应该创建小版本的图像并将其用作缩略图而不是加载UITableView
中的所有原始图片并更改其比例以适合Cell
吗?
答案 0 :(得分: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];
}