我有一個集合視圖(UICollectionViewController的子類),我放置了一個名爲「拍照」的UIBarButtonItem。當我點擊酒吧按鈕項目我的相機打開&我拍照。在我的項目中,從相機「使用照片」之後,它將移動到裁剪視圖控制器,在從裁剪視圖中選擇圖像後裁剪圖像,圖像放置在我的收藏夾視圖中當前控制器。在裁剪視圖中,我有兩個按鈕使用和取消。我的問題是,當我採取奇怪的2,3或4我收到控制檯內存警告,然後應用程序崩潰與警報「應用程序終止,由於內存壓力」。我一直在使用這段代碼,當我使用UIImagePickerControllerEditedImage
時,如果我使用UIImagePickerControllerOriginalImage
,則會出現內存問題。uiimagepickercontrolleroriginalimage記憶waring
我的問題是提供良好的圖像質量,這UIImagePickerControllerOriginalImage
提供了良好的質量,比UIImagePickerControllerEditedImage
。我必須擺脫這種記憶問題的,所以我用這條線[self dismissViewControllerAnimated:YES completion:NULL];
但我不能夠清除內存警告。
- (IBAction)TakeaPhoto:(id)sender {
[[UIApplication sharedApplication]setStatusBarHidden:FALSE withAnimation:NO];
gallery=0;
picker1 = [[UIImagePickerController alloc] init];
picker1.delegate = self;
self.resizeableCropArea =YES;
self.cropSize=CGSizeMake(296, 350);
picker1.sourceType = UIImagePickerControllerSourceTypeCamera;
[self presentViewController:picker1 animated:YES completion:NULL];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *image = [info objectForKey:
UIImagePickerControllerOriginalImage];
image_cap = [self imageTemp:image scaledToSize:CGSizeMake(320, 370)];
dataTemp = UIImageJPEGRepresentation(image,0.0);
CropViewController *cropController = [[CropViewController alloc] init];
cropController.sourceImage = [info objectForKey:UIImagePickerControllerOriginalImage];
Original_img = UIImageJPEGRepresentation(cropController.sourceImage,0.0);
[original_image addObject:[UIImage imageWithData:Original_img]];
NSLog(@"source image=%@",cropController.sourceImage);
cropController.resizeableCropArea = self.resizeableCropArea;
cropController.cropSize = self.cropSize;
cropController.delegate = self;
Cancel_Image= cropController.sourceImage;
[self dismissViewControllerAnimated:YES completion:NULL];
[self.navigationController
pushViewController:cropController animated:YES];
}