Takescreenshot与叠加图像

时间:2013-03-25 13:50:05

标签: iphone uiimageview avfoundation avcapturesession camera-overlay

我使用AVFoundation框架捕获叠加图像。但是当我将图像移动到某个参考点并截取屏幕截图时,它只显示我在drawInRect中为overlayimage设置的内容。如何动态截取屏幕截图。

代码:

[[self stillImageOutput] captureStillImageAsynchronouslyFromConnection:videoConnection
                                                         completionHandler:^(CMSampleBufferRef imageSampleBuffer, NSError *error) {
                                                             CFDictionaryRef exifAttachments = CMGetAttachment(imageSampleBuffer, kCGImagePropertyExifDictionary, NULL);
             if (exifAttachments) {
                NSLog(@"attachements: %@", exifAttachments);
                  } else {
                  NSLog(@"no attachments");
                  }                                                                                          

    NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageSampleBuffer];                                                         
 UIImage *image = [[UIImage alloc] initWithData:imageData];
   CGSize imageSize = [image size];                                                           
   CGSize overlaySize = [overlay size];
   UIGraphicsBeginImageContext(imageSize);
      [image drawInRect:CGRectMake(0, 0, imageSize.width, imageSize.height)];                                             

        CGFloat xScaleFactor = imageSize.width / 320;                                                                                                            

           CGFloat yScaleFactor = imageSize.height / 480;                                                 

            [overlay drawInRect:CGRectMake(30 * xScaleFactor, 100 * yScaleFactor, overlaySize.width * xScaleFactor, overlaySize.height * yScaleFactor)]; 

    UIImage *combinedImage = UIGraphicsGetImageFromCurrentImageContext();                                                         

     [self setStillImage:combinedImage];                                                     

      UIGraphicsEndImageContext();                                                        
      [combinedImage release];                                                

         [[NSNotificationCenter defaultCenter] postNotificationName:kImageCapturedSuccessfully object:nil];                                                   

0 个答案:

没有答案