0
이 질문은 이전에 물어 보았지만 아무 것도 작동하지 않는 것으로 알고 있습니다. ARC에서 CGImageRef가 공개되지 않음
내가CIImage
및
CGIImage
를 사용하여 필터링 된 이미지를 돌려 고정 방법이, I는
RayWenderlich.com의 예를 사용하고있는 UIImageView에 직접 설정하는 대신있는 UIImage 반환을 바꿨다.
내 문제는 CGImageRef cgimg
이 출시되지 않는다는 것입니다. 어느 정도 빠른 메모리 누수가 발생합니다. 내가 도대체 뭘 잘못하고있는 겁니까?
+ (UIImage *)image:(UIImage *)image withFilterName:(NSString *)filterName
{
if (!image)
return nil;
@autoreleasepool {
CIImage *beginImage = [[CIImage alloc] initWithCGImage:image.CGImage];
CIContext *context = [CIContext contextWithOptions:nil];
CIFilter *filter = [CIFilter filterWithName:@"CIPhotoEffectProcess"]
[filter setValue:beginImage forKey:kCIInputImageKey];
CIImage *outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
UIImage *newImage = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
return newImage;
}
}
CGImageRef는 NSObject의 하위 클래스가 아니기 때문에 (따라서 '선택자'와 '릴리즈'선택자가 없습니다), ARC가 계산하지 않을 것이라고 확신합니다. –
게시 한 코드에 아무런 문제가 보이지 않습니다. 'newImage'로 무엇을합니까? –