CITemperatureAndTintのサンプルコードまたは例はありますか?私はそのドキュメントを読みましたが、それを実装するためにいくつかの例が必要です。
3 に答える
CIFilter *yourFilter = [CIFilter filterWithName:@"CITemperatureAndTint"];
[yourFilter setValue:yourInputImage forKey:@"inputImage"];
[yourFilter setValue:[CIVector vectorWithX:6500 Y:500] forKey:@"inputNeutral"]; // Default value: [6500, 0] Identity: [6500, 0]
[yourFilter setValue:[CIVector vectorWithX:1000 Y:630] forKey:@"inputTargetNeutral"]; // Default value: [6500, 0] Identity: [6500, 0]
CIImage *resultImage = [yourFilter valueForKey: @"outputImage"];
UIImage *resultOutputImage = [UIImage imageWithCGImage:[context createCGImage:resultImage fromRect:resultImage.extent]];
このウィキペディアのリンクで、色温度の値によってどの色が得られるかを確認できます。
CITemperatureAndTint には、Image、Neutral、および TargetNeutral の 3 つの入力パラメーターがあります。Neutral と TargetNeutral は 2D CIVector タイプであり、両方とも、最初の次元は温度を参照し、2 番目の次元は色合いを参照することに注意してください。CITemperatureAndTint フィルターが基本的に行うことは、Neutral (srcTemperature、srcTint) によって定義されるソース ホワイト ポイントから TargetNeutral (dstTemperature、dstTint) によって定義されるターゲット ホワイト ポイントに RGB 値を適応させるマトリックスを計算し、このマトリックスを入力画像に適用することです。 (CIColorMatrix フィルターを使用)。Neutral と TargetNeutral が同じ値の場合、このフィルターを適用しても画像は変化しません。iPhoto の実装の詳細はわかりませんが、2 つのスライド バーで色温度と色合いを変更できると思います (つまり、
多分それはあなたを助けることができます@Sherwin Zadeh
温度:
var value: CGFloat = 0 // Min: -3000, Max: 3000
return image.applyingFilter("CITemperatureAndTint", parameters: [
"inputNeutral": CIVector.init(x: value + 6500, y: 0),
"inputTargetNeutral": CIVector.init(x: 6500, y: 0)
])
色合い:
var value: CGFloat = 0 // Min: -100, Max: 100
return image.applyingFilter("CITemperatureAndTint", parameters: [
"inputNeutral": CIVector.init(x: 6500, y: value),
"inputTargetNeutral": CIVector.init(x: 6500, y: 0)
])
CITemperatureAndTint 用に作成された特定の例はありませんが、NSImage を画面外の描画先として使用する方法を示すコードを取得できます。
CITemperatureAndTint を使用するように変更するか、ニーズに合わせて既存のコードを変更できると確信しています。
お役に立てれば。