칼라거에 이유류를 적용합니다
-
13-12-2019 - |
문제
CI 필터 가 iOS 5에서 사용할 수 있으며,캘 래어, "Noreferrrer"> oforeferrrer"> ophollow.html"> 적용Mac/A>에서 D를하십시오.다음은 내 코드가 있습니다 :
CALayer *myCircle = [CALayer layer];
myCircle.bounds = CGRectMake(0,0,30,30);
myCircle.position = CGPointMake(100,100);
myCircle.cornerRadius = 15;
myCircle.borderColor = [UIColor whiteColor].CGColor;
myCircle.borderWidth = 2;
myCircle.backgroundColor = [UIColor whiteColor].CGColor;
CIFilter *blurFilter = [CIFilter filterWithName:@"CIDiscBlur"];
[blurFilter setDefaults];
[blurFilter setValue:[NSNumber numberWithFloat:5.0f] forKey:@"inputRadius"];
[myCircle setFilters:[NSArray arrayWithObjects:blurFilter, nil]];
[self.view.layer addSublayer:myCircle];
.
해결책
CIDiskBlur
를 사용할 수없고 (iOS SDK 5.1) 및 setFilters:
가 사용할 수없는 것으로 보입니다.
레이어의 내용에서 입력 ciImage를 만듭니다.
CIImage *inputImage = [CIImage imageWithCGImage:(CGImageRef)(myCircle.contents)];`
.
필터를 적용하고 결과를 CGImagerEF로 가져 오십시오.
CIFilter *filter = [CIFilter filterWith...];// A filter that is available in iOS or a custom one :)
...
CIImage *outputImage = [filter outputImage];
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
.
마지막으로 cgimageref를 레이어로 설정합니다.
[myCircle setContents:(id)cgimg];
.
이렇게해야합니다.)
제휴하지 않습니다 StackOverflow