簡體   English   中英

iOS中的相機多圖像捕獲

[英]Camera Multiple Image Capture in iOS

-(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);
        }
    }
}    

/ *我編寫了這段代碼。 問題是,當我嘗試進行多次拍攝時,它顯示“ Received Memory Warning”,並且我的應用程序崩潰了。 在這種情況下,我嘗試對圖像進行計數,同時也對“相機未就緒模式”進行計數,以便將拍攝的圖像保存多次。 我該如何解決這個問題? * /

嘗試這個,

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是您要拍攝的照片數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM