AVComposition을 사용하여 동영상 생성 응용 프로그램을 만들고 제목 프레임을 만드는 데 문제가 있습니다. 각 프레임은 실제로 calayer이고 타이틀 레이어는 다른 프레임 위에 있습니다.CALayer - 단색 배경과 투명한 텍스트로 이미지를 만들려면 어떻게해야합니까?
제목 (텍스트)은 제목 텍스트 문자 아래 첫 번째 내용 프레임의 일부를 볼 수 있도록 검정색 배경으로 투명해야합니다.
나는 선수 마스크에 관한 기사를 대부분 찾았지만 아무런 도움이되지 않았습니다. 이 기사 (How to make only the part covered by text/title transparent in a UIView in IOS)는 Dave의 방식처럼 도움이되고 코딩되었지만 흰색 화면 만있는 것으로 알고 있습니다.
// create UILabel from the title text
CGRect rectFrame = CGRectMake(0, 0, videoSize.width, videoSize.height);
UILabel *lbTitle = [[UILabel alloc] initWithFrame:rectFrame];
lbTitle.text = self.titleText;
lbTitle.font = [UIFont fontWithName:@"Helvetica" size:60];
lbTitle.textColor = [UIColor blackColor];
lbTitle.backgroundColor = [UIColor whiteColor];
// get title image and create mask layer
UIGraphicsBeginImageContextWithOptions(lbTitle.bounds.size, TRUE, [[UIScreen mainScreen] scale]);
[lbTitle.layer renderInContext:UIGraphicsGetCurrentContext()];
CGImageRef viewImage = [UIGraphicsGetImageFromCurrentImageContext() CGImage];
UIGraphicsEndImageContext();
CALayer *maskLayer = [CALayer layer];
maskLayer.contents = (__bridge id)viewImage;
maskLayer.frame = rectFrame;
// create title background layer and set mastLayer as mast layer of this layer
// this layer corresponds to "UIView's layer" in Dave's method
CALayer *animatedTitleLayer = [CALayer layer];
animatedTitleLayer.backgroundColor = [UIColor whiteColor].CGColor;
animatedTitleLayer.mask = maskLayer;
animatedTitleLayer.frame = rectFrame;
...
[view.layer addSubLayer:animatedTitleLayer];
가 여기에 내가 제목 배경 (검은 색)으로 animatedTitleLayer을 사용하지만, 내가 볼은 흰색 화면입니다 : 여기
내가 한 일이다.
누구든지 나를 도와 줄 수 있습니까? 미리 감사드립니다.
마스크 레이어를 추가하지 않으셨습니까? '[self.view.layer addSublayer : animatedTitleLayer]' – Mani
죄송합니다. 그 줄을 쓰지 못했습니다. 그것은 이미 거기에 있으며 편집했습니다. – Alex