OGeek|极客世界-中国程序员成长平台

标题: ios - 模拟长时间曝光iOS [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 11:07
标题: ios - 模拟长时间曝光iOS

我在应用商店中找到了几个在复制长时间曝光方面做得很好的应用,但我在文档中找不到任何引起我注意的东西。我注意到的一件事是,当您打开应用程序时,它会停止播放音乐,这让我觉得这些应用程序正在拍摄视频并以某种方式组合这些图像,然后叠加它们。

有谁知道我如何使用 AVFoundation 做到这一点?



Best Answer-推荐答案


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

- (UIImage *) createLongExposureNSArray *)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

关于ios - 模拟长时间曝光iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148992/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://sqlite.in/) Powered by Discuz! X3.4