2016-08-18 16 views
0

ビデオアプリを作成していますが、ビデオのぼかし背景を追加しようとしています。like thatとスライド値に応じてぼかし効果を制御しています。私はコーディングにObjectivc-Cを使用しています。私はそれをどうすればいいのですか?iOSビデオの背景ぼかしを作成する

答えて

0

あなたはこのコードを使用しようとすると、マスクのぼかしビューが必要になります。

@interface ViewController() 

@property UISlider *slider; 
@property UIVisualEffectView *visualEffectView; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    //VisableRect = 100,100,200,200 

    //Add a backgroun picture 
    UIImageView* imageV = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height - 100)]; 
    imageV.image = [UIImage imageNamed:@"test"]; 
    [self.view addSubview:imageV]; 

    _visualEffectView = [[UIVisualEffectView alloc] initWithEffect:[UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]]; 
    _visualEffectView.frame = imageV.frame; 
    _visualEffectView.alpha = 1.0; 
    [self.view addSubview:_visualEffectView]; 

    //create path 
    UIBezierPath *maskPath = [UIBezierPath bezierPathWithRect:imageV.bounds]; 
    UIBezierPath *otherPath = [[UIBezierPath bezierPathWithRect:CGRectMake(100, 100, 200, 200)] bezierPathByReversingPath]; 
    [maskPath appendPath:otherPath]; 

    //set mask 
    CAShapeLayer *maskLayer = [CAShapeLayer layer]; 
    maskLayer.path = maskPath.CGPath; 
    [_visualEffectView.layer setMask:maskLayer]; 

    _slider = [[UISlider alloc] initWithFrame:CGRectMake(0, imageV.frame.size.height, 200, 20)]; 
    _slider.minimumValue = 0; 
    _slider.maximumValue = 1; 
    _slider.value = 1; 
    [_slider addTarget:self action:@selector(updateValue:) forControlEvents:UIControlEventValueChanged]; 
    [self.view addSubview:_slider]; 
} 

-(IBAction)updateValue:(id)sender{ 
    float sVaLue = _slider.value; 
    _visualEffectView.alpha = sVaLue; 
} 

をして効果が、この絵のようなものです:

enter image description here

あなたは、マスク層のパスを変更することができますあなたが望む任意のシェイプ、ビデオをぼかす必要がある場合は、必要なビューにimageVを変更します。

お手数ですがお手伝いします。

+0

ありがとうございました。 – Rupshikha

+0

まだいくつかの問題がありますか?@Rupshikha –

+0

まだ試していません。私はそれが再生されるときにビデオフレームに応じて動的なぼかし効果が必要です。何か問題がある場合は、私に知らせてください。 – Rupshikha

関連する問題