iOS中的相机多图像捕捉

时间:2014-12-03 09:50:49

标签: ios objective-c

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    if ([multipleCapture isOn])
    {
        images=info[UIImagePickerControllerOriginalImage];
        currentDate=[NSDate date];
        myString=[dateFormatter stringFromDate:currentDate];
        customText=imagetext.text;
        saveImage.dateTime=myString;
        saveImage.imageName=info[UIImagePickerControllerOriginalImage];
        saveImage.customText=customText;
        [imageArray addObject:saveImage];
        [imageArray sortUsingDescriptors:sortDescriptors];
        if ([imageArray count] == 1) 
        {
           UIGraphicsBeginImageContext(images.size);
           myString=[[imageArray objectAtIndex:0]valueForKey:@"dateTime"];
          [images drawInRect:CGRectMake(0, 0, images.size.width, images.size.height)];
          NSDictionary* attributes = @{NSFontAttributeName : [UIFontboldSystemFontOfSize:75],NSStrokeColorAttributeName :[UIColor blackColor],NSForegroundColorAttributeName : [UIColor yellowColor],NSStrokeWidthAttributeName : @-2.0};
          [myString drawAtPoint:CGPointMake(120,70)withAttributes:attributes];
          [customText drawAtPoint:CGPointMake(870, 70)withAttributes:attributes];
          newImage= UIGraphicsGetImageFromCurrentImageContext();
          UIGraphicsEndImageContext();
          UIImageWriteToSavedPhotosAlbum(newImage,self,@selector(savedPhotoImage:didFinishSavingWithError:contextInfo:), nil);
        }
    }
}    

/ *我参与了这段代码。问题是,当我尝试进行多次拍摄时,它会显示"收到内存警告"我的应用程序崩溃了。     在这里,我试图计算图像,同时它计数"相机未就绪模式"也这样我拍摄的图像多次保存。     我该如何解决这个问题? * /

1 个答案:

答案 0 :(得分:0)

试试这个,

int counter;
NSMutableArray * imageArray;

-(void)takePicture
 {
       counter=0;
       UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
[imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
[imagePicker setDelegate:self];
[self presentModalViewController:imagePicker animated:YES];
[imagePicker release];
}

 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{
UIImage *image= [info objectForKey:UIImagePickerControllerEditedImage];

[imageArray addObject:image];
counter++;  
if (counter<PhotoCount)
{
    [self dismissModalViewControllerAnimated:NO];
    UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
    [imagePicker setDelegate:self];
    [self presentModalViewController:imagePicker animated:NO];
    [imagePicker release];
}
else
{
    [self dismissModalViewControllerAnimated:YES];
}

}

PhotoCount是您要拍摄的照片数量。