CITemperatureAndTint для изображения в iOS

Есть ли образец кода или пример для CITemperatureAndTint? Я прочитал его документацию, но мне нужен пример для его реализации.


person Prerna chavan    schedule 13.07.2012    source источник
comment
следующее сработало для вас?   -  person Jigar Pandya    schedule 13.07.2012


Ответы (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, но я думаю, что два ползунка показывают изменения температуры и оттенка (т. е. различия между исходными и целевыми значениями температуры и оттенка), которые вы хотите добавить к исходному изображению.

person Bala    schedule 13.07.2012
comment
Спасибо за это, но я все еще не понимаю, как управлять тонировкой. Например, я не понял, как подкрасить изображение в синий цвет. - person Sherwin Zadeh; 20.12.2013

ну, нет конкретного примера, сделанного для CITemperatureAndTint, но вы можете получить код, демонстрирующий использование NSImage в качестве места назначения рисования вне экрана.

URL этого кода: https://developer.apple.com/library/mac/#samplecode/Tinted_Image/Introduction/Intro.html#//apple_ref/doc/uid/DTS10000412-Intro-DontLinkElementID_2

Я уверен, что вы можете изменить его для использования CITemperatureAndTint или изменить существующий код в соответствии со своими потребностями.

Надеюсь это поможет.

person Jigar Pandya    schedule 13.07.2012