Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios CIFilter如何将白色imageView.image透明化为任何颜色_Ios_Cifilter - Fatal编程技术网

Ios CIFilter如何将白色imageView.image透明化为任何颜色

Ios CIFilter如何将白色imageView.image透明化为任何颜色,ios,cifilter,Ios,Cifilter,我正在尝试以编程方式将白色imageView.image转换为不同的颜色。轮廓线当前为白色 我正在尝试使用CIFilter,但图像根本不显示 以下是粘贴的代码供参考: - (UIImage *) filterImage: (CIImage *)beginImage color: (UIColor *) color{ CIImage *output = [CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:kCIInpu

我正在尝试以编程方式将白色imageView.image转换为不同的颜色。轮廓线当前为白色

我正在尝试使用CIFilter,但图像根本不显示

以下是粘贴的代码供参考:

- (UIImage *) filterImage: (CIImage *)beginImage color: (UIColor *) color{

     CIImage *output = [CIFilter filterWithName:@"CIColorMonochrome" keysAndValues:kCIInputImageKey, beginImage, @"inputIntensity", [NSNumber numberWithFloat:1.0], @"inputColor", [[CIColor alloc] initWithColor:color], nil].outputImage;

     CIContext *context = [CIContext contextWithOptions:nil];
     CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent];
     UIImage *newImage = [UIImage imageWithCGImage:cgiimage];

     CGImageRelease(cgiimage);

     return newImage;
}

解决方案.h文件

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@property (weak, readwrite, nonatomic) IBOutlet UIImageView *imgView;


@end
#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.

    CIImage *inputImage = [CIImage imageWithCGImage:[UIImage imageNamed:@"NJDLv"].CGImage];



    self.imgView.image = [self filterImage:inputImage color:[UIColor yellowColor]];
}

- (UIImage *) filterImage: (CIImage *)beginImage color: (UIColor *) color{

    CIColor *ciColor = [CIColor colorWithCGColor:color.CGColor];

    CIImage *output = [CIFilter filterWithName:@"CIColorMonochrome"
                                 keysAndValues:kCIInputImageKey, beginImage,
                       @"inputIntensity",@(1.0),
                       @"inputColor", ciColor, nil].outputImage;

    CIContext *context = [CIContext contextWithOptions:nil];
    CGImageRef cgiimage = [context createCGImage:output fromRect:output.extent];
    UIImage *newImage = [UIImage imageWithCGImage:cgiimage];

    CGImageRelease(cgiimage);

    return newImage;

}

@end

谢谢,这对我来说仍然不起作用。图像保持白色。输入图像必须设置透明度。我已使用答案中的方法添加了带有输入和输出的屏幕截图。如何设置透明度?必须使用gimp之类的图形软件。