iOS 合并带有透明通道的视频-
2015-08-06 16:27
519 查看
视频的合成,透明通道是大家所熟知.
在图形图像学中,透明通道也称Alpha通道,代表数字图像中像素点的透明信息。白色的Alpha像素用以定义不透明的彩色像素,而黑色的Alpha定以透明像素,黑白之间的灰阶则是彩色图片中的半透明部分。-----摘自百度百科
所以在合并雪花,灯光,爆破。。。 这里就需要有透明通道的视频。
这里我用的是GPUImage 这个工具,可以讲雪花无缝隙的结合起来,说到这里,大家最好会使用一点ps,在图片滤镜处理的时候,可以通过ps来看看参数和效果
通过ps实验,发现滤色可以做到这一点。GPUImageScreenBlendFilter 可以结局这个事情。
详细的GPUImage的头文件点击这里----/article/8910323.html
在图形图像学中,透明通道也称Alpha通道,代表数字图像中像素点的透明信息。白色的Alpha像素用以定义不透明的彩色像素,而黑色的Alpha定以透明像素,黑白之间的灰阶则是彩色图片中的半透明部分。-----摘自百度百科
所以在合并雪花,灯光,爆破。。。 这里就需要有透明通道的视频。
这里我用的是GPUImage 这个工具,可以讲雪花无缝隙的结合起来,说到这里,大家最好会使用一点ps,在图片滤镜处理的时候,可以通过ps来看看参数和效果
通过ps实验,发现滤色可以做到这一点。GPUImageScreenBlendFilter 可以结局这个事情。
详细的GPUImage的头文件点击这里----/article/8910323.html
_movieFile = [[GPUImageMovie alloc] initWithURL:url]; _movieFile.runBenchmark = YES; _movieFile.playAtActualSpeed = NO; _movieFile2 = [[GPUImageMovie alloc] initWithURL:url2]; _movieFile2.runBenchmark = YES; _movieFile2.playAtActualSpeed = NO; _filter = [[GPUImageScreenBlendFilter alloc] init]; // filter = [[GPUImageUnsharpMaskFilter alloc] init]; [_movieFile addTarget:self.filter]; [_movieFile2 addTarget:self.filter]; // Only rotate the video for display, leave orientation the same for recording // In addition to displaying to the screen, write out a processed version of the movie to disk NSString *pathToMovie = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/last.mov"]; unlink([pathToMovie UTF8String]); // If a file already exists, AVAssetWriter won't let you record new frames, so delete the old movie NSLog(@"file = %@",pathToMovie); NSURL *movieURL = [NSURL fileURLWithPath:pathToMovie]; self.movieWriter = [[GPUImageMovieWriter alloc] initWithMovieURL:movieURL size:CGSizeMake(640.0, 360.0)]; [self.filter addTarget:self.movieWriter]; // Configure this for video from the movie file, where we want to preserve all video frames and audio samples self.movieWriter.shouldPassthroughAudio = YES; //movieFile.audioEncodingTarget = self.movieWriter; [_movieFile enableSynchronizedEncodingUsingMovieWriter:self.movieWriter]; [self.movieWriter startRecording]; [_movieFile startProcessing]; [_movieFile2 startProcessing]; __block mlkiMovie * sself = self; [self.movieWriter setCompletionBlock:^{ [sself.filter removeTarget:sself.movieWriter]; [sself.movieFile endProcessing]; [sself.movieFile2 endProcessing]; [sself.movieWriter finishRecording]; NSLog(@"ok"); }];
相关文章推荐
- IOS学习之ios应用数据存储方式(归档)
- ios 清理缓存
- OC之使用MD5加密字符串、NSData和文件的方法
- IOS学习之ios应用数据存储方式(偏好设置)
- IOS学习之ios应用数据存储方式(XML属性列表-plist)
- iOS设计模式之单例模式
- ios 打开图片库和相机选择图片界面修改为简体中文
- IOS内存管理--自动释放池的实现原理
- iOS 获取IP地址
- html5在IOS下自动播放音乐
- 显示ios设备信息的程序
- iOS项目的重命名方法完整图文教程
- iOS开发之保存图片
- IOS 动态隐藏状态栏
- 仿ios可上提下拉的ScrollView
- iOS第一课 设置页面入口
- iOS des加密
- 用CocoaPods做iOS程序的依赖管理
- iOS开发系列--并行开发其实很容易
- iOS开发系列--打造自己的“美图秀秀”