我正在使用 CIFilter 和 CIHueBlendMode 来混合图像(前景)和红色层(背景)
我在 Photoshop CS6 中使用 Hue Blend Mode 做同样的事情(复制前景图像并使用相同的红色填充背景层)
不幸的是,结果非常不同:( 同样适用于将 CIColorBlendMode、CIDifferenceBlendMode 和 CISaturationBlendMode 与它们的 Photoshop 对应项进行比较)
我的问题是:是我吗?我在这里做错了吗?还是核心图像混合模式和 Photoshop 混合模式完全不同?
// Blending the input image with a red image
CIFilter* composite = [CIFilter filterWithName:@"CIHueBlendMode"];
[composite setValue:inputImage forKey:@"inputImage"];
[composite setValue:redImage forKey:@"inputBackgroundImage"];
CIImage *outputImage = [composite outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
imageView.image = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
// This is how I create the red image:
- (CIImage *)imageWithColor:(UIColor *)color inRect:(CGRect)rect
{
UIGraphicsBeginImageContext(rect.size);
CGContextRef _context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(_context, [color CGColor]);
CGContextFillRect(_context, rect);
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return [[CIImage alloc] initWithCGImage:image.CGImage options:nil];
}