3

フィルター 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);

ありがとう

4

0 に答える 0