【问题标题】:Get black & white image from UIImage in iPhone SDK?从 iPhone SDK 中的 UIImage 获取黑白图像?
【发布时间】: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;
}

我的结果--------------------------------------------- -预期结果

【问题讨论】:

  • 单色滤镜不起作用,可以通过添加BrightnessLuminous来达到您想要的效果。正如我上面所说,尝试苹果更多的过滤器,你会得到结果。干杯。
  • 感谢@iphonic 的作品,但不是预期的结果。
  • @vijay 是的,您可能需要通过组合进行大量测试,这很困难。还有另一种方法是,如果您有任何图像编辑器,如 Photoshop,您尝试从原始图像中获得您想要的确切输出,并使用 coregraphics 应用相同的输出。希望对您有所帮助。

标签: ios objective-c cifilter


【解决方案1】:

您可以使用混合模式:kCGBlendModeLuminosity,alpha 值:1.0

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多