フィルター CIHardLightBlendMode を使用したいのですが、Apple Web サイトで説明されているように機能しないようです。
ソース イメージのサンプル カラーが 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);
ありがとう