模拟长曝光iOS

时间:2015-06-30 21:39:39

标签: ios objective-c avfoundation

我在应用程序商店中找到了几个可以很好地复制长时间曝光的应用程序,但是我无法找到引起我注意的文档中的任何内容。我注意到的一件事是,当你打开应用程序时,它会停止播放音乐,这让我觉得这些应用程序正在拍摄视频并以某种方式组合这些图像并覆盖它们。

有人知道如何使用AVFoundation吗?

1 个答案:

答案 0 :(得分:4)

烨。我相信帧是从视频中提取,处理,然后叠加在一起。通常,图像处理部分涉及将每帧的亮度调暗总帧数的因子,然后累加它们的像素值。

- (UIImage *) createLongExposure:(NSArray *)images {
   UIImage *firstImg = images[0];
   CGSize imgSize = firstImg.size;
   CGFloat alpha = 1.0 / images.count;

   UIGraphicsBeginImageContext(imgSize);
   CGContextRef context = UIGraphicsGetCurrentContext();
   CGContextSetFillColorWithColor(context, [[UIColor blackColor] CGColor]);
   CGContextFillRect(context, CGRectMake(0, 0, imgSize.width, imgSize.height));

   for (UIImage *image in images) {
      [image drawInRect:CGRectMake(0, 0, imgSize.width, imgSize.height)
        blendMode:kCGBlendModePlusLighter alpha:alpha];
   }
   UIImage *longExpImg = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();
   return longExpImg;
}

捕获视频帧的示例代码。 https://developer.apple.com/library/ios/qa/qa1702/_index.html