Есть ли образец кода или пример для CITemperatureAndTint? Я прочитал его документацию, но мне нужен пример для его реализации.
CITemperatureAndTint для изображения в iOS
Ответы (2)
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. Neutral и TargetNeutral имеют тип 2D CIVector, и в обоих из них обратите внимание, что первое измерение относится к температуре, а второе измерение относится к оттенку. По сути, фильтр CITemperatureAndTint вычисляет матрицу, которая адаптирует значения RGB из исходной точки белого, определенной параметром Neutral (srcTemperature, srcTint), к целевой точке белого, определенной параметром TargetNeutral (dstTemperature, dstTint), а затем применяет эту матрицу к входному изображению. (с использованием фильтра CIColorMatrix). Если Neutral и TargetNeutral имеют одинаковые значения, то после применения этого фильтра изображение не изменится. Я не знаю подробностей реализации iPhoto, но я думаю, что два ползунка показывают изменения температуры и оттенка (т. е. различия между исходными и целевыми значениями температуры и оттенка), которые вы хотите добавить к исходному изображению.
ну, нет конкретного примера, сделанного для CITemperatureAndTint, но вы можете получить код, демонстрирующий использование NSImage в качестве места назначения рисования вне экрана.
Я уверен, что вы можете изменить его для использования CITemperatureAndTint или изменить существующий код в соответствии со своими потребностями.
Надеюсь это поможет.