我想使用过滤器 CIHardLightBlendMode 但它似乎不像苹果网站上解释的那样工作:
如果源图像样本颜色浅于 50% 灰色,则背景变亮,类似于加网。如果源图像样本颜色比 50% 灰色深,则背景变暗,类似于相乘。如果源图像样本颜色等于 50% 灰度,则源图像不会改变
我尝试使用 50% 的灰色叠加图像,结果更暗。我尝试了 73% 的灰色,几乎没有影响(因为它应该是 50%)
问题是我有很多现有的叠加图像,我目前使用 ImageMagick 并且它工作正常(叠加图像也可以在使用强光叠加模式的 Photoshop 或 Gimp 上工作)为了更快地处理图像,我想使用CoreImage 但它没有按我预期的那样工作。
我怎样才能使用过滤器,因为它是解释的?
这是我的代码:
CIContext *context = [CIContext contextWithOptions:nil];
CIImage *sourceImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:imgSource]];
CIImage *overlayImage = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:imgOverlay]];
CIImage *outputImage;
CIFilter *filter = [CIFilter filterWithName:@"CIHardLightBlendMode"];
[filter setDefaults];
[filter setValue:overlayImage forKey:kCIInputImageKey];
[filter setValue:sourceImage forKey:kCIInputBackgroundImageKey];
outputImage = [filter outputImage];
CGImageRef cgimg = [context createCGImage:outputImage fromRect:[outputImage extent]];
self.processedImage = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);
谢谢