2012-06-20 2 views
0

아이폰에서 1 초 동안 캡처 할 수있는 스크린 샷 수를 알고 싶습니다. 현재 나는 5 개의 스크린 샷을 얻고 있습니다. 여기에 그래서 난 그 1 개 sec.any 제안에 적어도 15 스크린 샷이 필요하면 백그라운드 스레드에서 이미지 변환을 수행해야iphone에서 최대 1 초간 캡쳐 화면 수

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(saveImageInPhotoAlbum) userInfo:nil repeats:YES]; 
    // Do any additional setup after loading the view, typically from a nib. 
} 

    -(void)saveImageInPhotoAlbum 
{ 
    UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width,self.view.frame.size.height)); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [self.view.layer renderInContext:context]; 
    UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 


    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(screenShot)]; 

    UIImage *image=[UIImage imageWithData:imageData]; 
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 

} 
+0

내 코드/내가 좋은 품질의 비디오를 만들려면 큐 – CarlJ

+0

입니까? – Nitin

+0

메서드 호출을 확인하는 것이 가장 도움이 될 것입니다. (예 : 시간 도구 시간 프로필). 그리고 나는 이미지를 변환하는 것이 시간 공룡이라고 생각한다. 백그라운드 큐에서이 작업을 실행하면 FPS가 증가합니다. – CarlJ

답변

0
int i=0; 
-(void)saveImageInPhotoAlbum 
{ 
    for (int i=0;i<10,i++) 
{ 
    UIGraphicsBeginImageContext(CGSizeMake(self.view.frame.size.width,self.view.frame.size.height)); 

    CGContextRef context = UIGraphicsGetCurrentContext(); 
    [self.view.layer renderInContext:context]; 
    UIImage *screenShot = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 


    NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(screenShot)]; 

    UIImage *image=[UIImage imageWithData:imageData]; 
    UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil); 
} 
i++; 
NSLog(@"Counting of Photos= %d",i); 
} 
관련 문제