【问题标题】:How to use CIFilter CiColorCube如何使用 CIFilter CiColorCube
【发布时间】:2013-03-22 23:07:41
【问题描述】:

谁能解释一下,这个过滤器是如何工作的,我看过 WWDC 2012 和文档,但还是不太明白。在哪里以及如何定义立方体颜色图。它是在 .h 还是 .m 文件中?我有 ViewController.h 和 .m,我在其中使用一些过滤器,我需要使用 CiColorCube 过滤器,但我只是不知道如何。这是我的代码:

- (void)viewDidLoad
{
    // here i would like to use CIColorCube
    CIImage *inputImage = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"background.jpg"]];
    CIImage *inputBackgroundImg = [[CIImage alloc]initWithImage:[UIImage imageNamed:@"image.jpeg"]];
    CIContext *context = [CIContext contextWithOptions:nil];
    vignette = [CIFilter filterWithName:@"CIVignette"];
    [vignette setValue:inputImage forKey:kCIInputImageKey];
    [vignette setValue:[NSNumber numberWithFloat:2.5] forKey:@"inputRadius"];
    [vignette setValue:[NSNumber numberWithFloat:2.9] forKey:@"inputIntensity"];
    sourceOC = [CIFilter filterWithName:@"CISourceOverCompositing"];
    [sourceOC setValue:vignette.outputImage forKey:kCIInputImageKey];
    [sourceOC setValue:inputBackgroundImg forKey:@"inputBackgroundImage"];
    maskToAlpha = [CIFilter filterWithName:@"CIMaskToAlpha"];
    [maskToAlpha setValue:inputImage forKey:kCIInputImageKey];
    CIImage *outputImage = maskToAlpha.outputImage;
    imageView.image = [UIImage imageWithCGImage:[context createCGImage:outputImage fromRect:outputImage.extent]];
    [super viewDidLoad];
}

【问题讨论】:

  • 据我了解,它替换了颜色数组中的颜色。例如,您可以使图像大部分为黑色和白色,并留下红色。这个颜色数组应该被转换为 NSData。不幸的是,我没有找到关于这个主题的好的教程,但我认为您可以在 Photoshop 或 3D Lut Creator 应用程序中创建这些数组。

标签: ios core-image cifilter


【解决方案1】:

在 Apple 的开发者库中,'Subclassing CIFilter: Recipes for Custom Effects' 上有一个文档显示了如何制作颜色图..

此外,您可以在 XCode 中查找 ImageApp 示例代码,它还显示了 ImageFilter.m 中的方法。

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 2010-11-12
    • 1970-01-01
    • 2019-12-05
    • 2018-02-17
    • 2014-07-14
    • 1970-01-01
    • 2013-11-03
    • 2020-01-09
    相关资源
    最近更新 更多