Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何以编程方式为视频文件添加水印_Ios_Objective C_Ipad_Avfoundation - Fatal编程技术网

Ios 如何以编程方式为视频文件添加水印

Ios 如何以编程方式为视频文件添加水印,ios,objective-c,ipad,avfoundation,Ios,Objective C,Ipad,Avfoundation,我有一个用户从iPhone摄像头录制的视频文件。然后,我想生成一个新的视频文件,其中包括一个PNG层,该层位于它的顶部 在Objective-C中如何完成这样的任务 我很乐意编写我的代码来演示如何录制视频文件,但您可以假设它是一个普通的.mov文件 非常感谢你 在本地保存文件之前,创建CATextLayer并将其附加到视频。我相信这段代码会帮助你,这是我为我的一个应用程序编写的 - (void)applyVideoEffectsToComposition:(AVMutableVideoCompo

我有一个用户从iPhone摄像头录制的视频文件。然后,我想生成一个新的视频文件,其中包括一个PNG层,该层位于它的顶部

Objective-C
中如何完成这样的任务

我很乐意编写我的代码来演示如何录制视频文件,但您可以假设它是一个普通的.mov文件


非常感谢你

在本地保存文件之前,创建CATextLayer并将其附加到视频。我相信这段代码会帮助你,这是我为我的一个应用程序编写的

- (void)applyVideoEffectsToComposition:(AVMutableVideoComposition *)composition size:(CGSize)size
{
    NSArray *fieldsArray = overlayFieldsArray;
    // 1 - Set up the text layer
    CATextLayer *subtitle1Text = [[CATextLayer alloc] init];
    subtitle1Text.wrapped=YES;
    subtitle1Text.alignmentMode = kCAAlignmentLeft;
    [subtitle1Text setFont:@"Helvetica-Bold"];
    [subtitle1Text setFontSize:textSize];
    [subtitle1Text setFrame:CGRectMake(0, 0, size.width, fieldsArray.count*textSize+20) ];


    NSMutableString *layerText = [NSMutableString stringWithCapacity:0];

    for(NSDictionary *fieldDictionary in fieldsArray){

        [layerText appendFormat:@" %@ :",[[fieldDictionary allKeys] objectAtIndex:0]];

        [layerText appendFormat:@" %@ \n",[_candidateDictionary valueForKey:[[fieldDictionary allValues] objectAtIndex:0]]];
    }


    [subtitle1Text setString:layerText];

    [subtitle1Text setForegroundColor:[[UIColor colorForText] CGColor]];

    // 2 - The usual overlay
    CALayer *overlayLayer = [CALayer layer];
    overlayLayer.backgroundColor = [UIColor colorForLayer].CGColor;
    overlayLayer.opacity=0.5f;
    CGSize maximumSize = CGSizeMake(600, 600);
    UIFont *myFont = [UIFont fontWithName:@"Helvetica" size:textSize];
    CGSize layerTextSize = [layerText sizeWithFont:myFont
                                 constrainedToSize:maximumSize
                                     lineBreakMode:UILineBreakModeWordWrap];
    overlayLayer.frame = CGRectMake(10, 0, layerTextSize.width*1.1, fieldsArray.count*textSize+20);
    [overlayLayer setMasksToBounds:YES];

    [overlayLayer addSublayer:subtitle1Text];

    CALayer *parentLayer = [CALayer layer];

    CALayer *videoLayer = [CALayer layer];
    videoLayer.frame = CGRectMake(0, 0, size.width, size.height);
    [parentLayer addSublayer:videoLayer];


    parentLayer.frame = CGRectMake(10, 0, layerTextSize.width*1.1, fieldsArray.count*textSize+20);
    [parentLayer addSublayer:overlayLayer];



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

}