// ? 水印的添加
CALayer *animatedTitleLayer = [self buildAnimatedTitleLayerForSize:CGSizeMake(480, 640)];
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, record_W, record_H);
videoLayer.frame = CGRectMake(0, 0, record_W, record_H);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:animatedTitleLayer];
videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];
// ? end
- (CALayer *)buildAnimatedTitleLayerForSize:(CGSize)videoSize
{
// 视频的显示大小
CGSize dataLayerSize = CGSizeMake(320.0f, 480.0f);
// Create a layer for the overall title animation.
CALayer *animatedTitleLayer = [CALayer layer];
// 由于旋转过了,所以高与宽互相转换了,原来 480*640 由于旋转 成了640*480
// 他们的起点还是左下角
animatedTitleLayer.frame = CGRectMake(0.0f, videoSize.width-dataLayerSize.height, dataLayerSize.width, dataLayerSize.height);
animatedTitleLayer.backgroundColor = [UIColor clearColor].CGColor;
// 水印
UIImage *waterMarkImage = [UIImage imageNamed:@"sinaWeibo.png"];
CALayer *waterMarkLayer = [CALayer layer];
waterMarkLayer.contents = (id)waterMarkImage.CGImage ;
waterMarkLayer.frame = CGRectMake(dataLayerSize.width-waterMarkImage.size.width-15.0f, dataLayerSize.height-waterMarkImage.size.height-15.0f, waterMarkImage.size.width, waterMarkImage.size.height);
waterMarkLayer.opacity = 0.6f;
// 文字
CATextLayer *textLayer = [CATextLayer layer];
textLayer.string = @"主演: 视频电影";
textLayer.font = (__bridge CFTypeRef)(@"HiraKakuProN-W3");
textLayer.fontSize = 42.f; //字体的大小
textLayer.shadowOpacity = 0.6f ;
textLayer.contentsScale =2; // ?
textLayer.backgroundColor = [UIColor clearColor].CGColor ;
textLayer.foregroundColor = [UIColor whiteColor].CGColor ; // 字体颜色
// 文字的位置
textLayer.frame = CGRectMake(85.0f, dataLayerSize.height-20.0f-15.0f, dataLayerSize.width, 80.0f);
[animatedTitleLayer addSublayer:waterMarkLayer];
[animatedTitleLayer addSublayer:textLayer];
return animatedTitleLayer;
}
CALayer *animatedTitleLayer = [self buildAnimatedTitleLayerForSize:CGSizeMake(480, 640)];
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, record_W, record_H);
videoLayer.frame = CGRectMake(0, 0, record_W, record_H);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:animatedTitleLayer];
videoComposition.animationTool = [AVVideoCompositionCoreAnimationTool videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];
// ? end
- (CALayer *)buildAnimatedTitleLayerForSize:(CGSize)videoSize
{
// 视频的显示大小
CGSize dataLayerSize = CGSizeMake(320.0f, 480.0f);
// Create a layer for the overall title animation.
CALayer *animatedTitleLayer = [CALayer layer];
// 由于旋转过了,所以高与宽互相转换了,原来 480*640 由于旋转 成了640*480
// 他们的起点还是左下角
animatedTitleLayer.frame = CGRectMake(0.0f, videoSize.width-dataLayerSize.height, dataLayerSize.width, dataLayerSize.height);
animatedTitleLayer.backgroundColor = [UIColor clearColor].CGColor;
// 水印
UIImage *waterMarkImage = [UIImage imageNamed:@"sinaWeibo.png"];
CALayer *waterMarkLayer = [CALayer layer];
waterMarkLayer.contents = (id)waterMarkImage.CGImage ;
waterMarkLayer.frame = CGRectMake(dataLayerSize.width-waterMarkImage.size.width-15.0f, dataLayerSize.height-waterMarkImage.size.height-15.0f, waterMarkImage.size.width, waterMarkImage.size.height);
waterMarkLayer.opacity = 0.6f;
// 文字
CATextLayer *textLayer = [CATextLayer layer];
textLayer.string = @"主演: 视频电影";
textLayer.font = (__bridge CFTypeRef)(@"HiraKakuProN-W3");
textLayer.fontSize = 42.f; //字体的大小
textLayer.shadowOpacity = 0.6f ;
textLayer.contentsScale =2; // ?
textLayer.backgroundColor = [UIColor clearColor].CGColor ;
textLayer.foregroundColor = [UIColor whiteColor].CGColor ; // 字体颜色
// 文字的位置
textLayer.frame = CGRectMake(85.0f, dataLayerSize.height-20.0f-15.0f, dataLayerSize.width, 80.0f);
[animatedTitleLayer addSublayer:waterMarkLayer];
[animatedTitleLayer addSublayer:textLayer];
return animatedTitleLayer;
}