1
UIImage에 선명 효과 필터를 적용 할 때 약간 문제가 있습니다.CIFilter를 사용할 때 알파 채널 가져 오기 [지우는 방법]
코드는 완벽하게 작동하지만 결과 UIImage에 알파 채널이 있다는 문제가 있습니다. 이로 인해 성능 문제가 발생합니다.
이 내 컨텍스트를 초기화하고
EAGLContext *myEAGLContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setObject: [NSNull null] forKey: kCIContextWorkingColorSpace];
context = [CIContext contextWithEAGLContext:myEAGLContext options:options];
sharpenLuminanceFilter = [CIFilter filterWithName:@"CISharpenLuminance"];
를 필터링하는 방법입니다 그리고 이미지
- (UIImage *)applySharpingFilter:(UIImage *)originalImage withValue:(float)value{
CIImage *image = [CIImage imageWithCGImage:originalImage.CGImage];
[sharpenLuminanceFilter setValue:image forKey:@"inputImage"];
[sharpenLuminanceFilter setValue:[NSNumber numberWithFloat:value] forKey:@"inputSharpness"];
CIImage * result = sharpenLuminanceFilter.outputImage;
CGImageRef cgimg = [context createCGImage:result fromRect:[result extent]];
double scaleFactor = [UIScreen mainScreen].scale;
UIImage *finalImage = [UIImage imageWithCGImage:cgimg scale:scaleFactor orientation:UIImageOrientationUp];
CGImageRelease(cgimg);
[sharpenLuminanceFilter setValue:nil forKey:@"inputImage"];
return finalImage;
}
가 어쨌든 내가 그 I를 지정할 수 있습니다인가를 생성하기 위해 다음과 같은 기능을 사용하여 결과 이미지가 OPAQUE이고 알파 채널이 없기를 원하십니까?
방금 전체 그림을 더 흰색으로 만들었고 알파 채널을 제거하지 않았습니다. 이 문제는 투명도가있는 이미지가있는 경우 스크롤 속도가 느릴 때의 성능에 영향을 미칩니다. – Hosam
채널이 RGBA 이외의 다른 것입니까? 그렇다면 1이 알파 채널과 동일한 위치에 있도록 바이어스 벡터를 변경해야 할 수도 있습니다. – user1118321
결과 이미지에 항상 알파 채널이있는 모든 조합을 시도했습니다. CGImage를 만들 때 알파 채널을 제거하는 방법이 있습니까? – Hosam