Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ZB_AddWaterImageToVideo

先说下思路:

首先我们要知道我们能看到的视频实际上是由一个叫做videoLayer负责显示的,和他同级的有个layer叫做animationLayer,我们能够控制的其实就是这个东西,他可以由我们自己创建,他们有一个共同的父类叫做parentLayer。

添加图片水印的代码:

CALayer *imgLayer = [CALayer layer];
imgLayer.contents = (id)img.CGImage;
imgLayer.frame = CGRectMake(0, 0, size.width, size.height);

创建好了图片layer后,就需要创建videoLayer //把文字和图标都添加到layer

CALayer *overlayLayer = [CALayer layer];
[overlayLayer addSublayer:imgLayer];
overlayLayer.frame = CGRectMake(0, 0, size.width, size.height);
[overlayLayer setMasksToBounds:YES];
[overlayLayer addSublayer:imgLayer];
CALayer *parentLayer = [CALayer layer];
CALayer *videoLayer = [CALayer layer];
parentLayer.frame = CGRectMake(0, 0, size.width, size.height);
parentLayer.backgroundColor = [UIColor redColor].CGColor;
videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
[parentLayer addSublayer:videoLayer];
[parentLayer addSublayer:overlayLayer];

composition.animationTool = [AVVideoCompositionCoreAnimationTool
                             videoCompositionCoreAnimationToolWithPostProcessingAsVideoLayer:videoLayer inLayer:parentLayer];

这里主要是告诉系统我们的layer层时parentLayer,在parentLayer里负责video显示的是我们的videoLayer。

详细说明尽在博客,地址:https://juejin.im/post/5b9b12b1e51d450e4369290f

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages