【发布时间】:2015-09-19 12:24:15
【问题描述】:
我想将图像转换为纯黑白。我尝试得到的结果是我附加的左图,结果应该是我根据应用程序要求附加的右图。
我使用了很多 CIFilter,例如(CIColorMonochrome、CIColorControls、CIPhotoEffectTonal 等),但这些都不起作用。
请检查下面的代码和图片的附加结果。
- (UIImage *)imageBlackAndWhite
{
CIImage *beginImage = [CIImage imageWithData: UIImageJPEGRepresentation(self.captureImage.image, .1)];
//CIImage *beginImage = [CIImage imageWithCGImage:self.CGImage];
CIImage *output = [CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:kCIInputImageKey, beginImage, @"inputIntensity", [NSNumber numberWithFloat:1.0], @"inputColor", [[CIColor alloc] initWithColor:[UIColor whiteColor]], nil].outputImage;
CIContext *context = [CIContext contextWithOptions:nil];
CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent];
UIImage *newImage = [UIImage imageWithCGImage:cgiimage];
CGImageRelease(cgiimage);
return newImage;
}
我的结果--------------------------------------------- -预期结果
【问题讨论】:
-
单色滤镜不起作用,可以通过添加
Brightness或Luminous来达到您想要的效果。正如我上面所说,尝试苹果更多的过滤器,你会得到结果。干杯。 -
感谢@iphonic 的作品,但不是预期的结果。
-
@vijay 是的,您可能需要通过组合进行大量测试,这很困难。还有另一种方法是,如果您有任何图像编辑器,如 Photoshop,您尝试从原始图像中获得您想要的确切输出,并使用 coregraphics 应用相同的输出。希望对您有所帮助。
标签: ios objective-c cifilter