我尝试使用Core Image处理图像。我已经创建了UIImage类别来完成它。
我将QuartzCore和CoreImage框架添加到项目中,导入CoreImage/CoreImage.h并使用以下代码:
CIImage *inputImage = self.CIImage;
CIFilter *exposureAdjustmentFilter = [CIFilter filterWithName:@"CIExposureAdjust"];
[exposureAdjustmentFilter setDefaults];
[exposureAdjustmentFilter setValue:inputImage forKey:@"inputImage"];
[exposureAdjustmentFilter setValue:[NSNumber numberWithFloat:5.0f] forKey:@"inputEV"];
CIImage *outputImage = [exposureAdjustmentFilter valueForKey:@"outputImage"];
CIContext *myContext = [CIContext contextWithOptions:nil];
return [UIImage imageWithCGImage:[myContext createCGImage:outputImage fromRect:outputImage.extent]];
但是我从过滤器中得到了空的输出图像。
我也尝试使用相同结果的CIHueAdjust。
提前感谢您。
更新:我已经找到了解决方案。必须分配新的CIImage,而不仅仅是传递引用到UIImage.CIImage,方法如下:
CIImage *inputImage = [[CIImage alloc] initWithImage:self];