2012-07-13 22 views

risposta

14
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]];  

Si può vedere quali valori per la temperatura di colore ti danno che i colori in this wikipedia link.

For Reference

CITemperatureAndTint ha tre parametri di ingresso: Immagine, Neutro e TargetNeutral. Neutro e TargetNeutral sono di tipo 2D CIVector e in entrambi si noti che la prima dimensione si riferisce a Temperature e la seconda dimensione si riferisce a Tint. Quello che fa fondamentalmente il filtro CITemperatureAndTint è calcolare una matrice che adatta i valori RGB dal punto di bianco sorgente definito da Neutral (srcTemperature, srcTint) al punto di bianco di destinazione definito da TargetNeutral (dstTemperature, dstTint), e quindi applicare questa matrice sull'immagine di input (usando il filtro CIColorMatrix). Se Neutro e TargetNeutral hanno gli stessi valori, l'immagine non cambierà dopo aver applicato questo filtro. Non conosco i dettagli di implementazione di iPhoto, ma penso che le due barre di scorrimento forniscano le modifiche di Temperatura e Tinta (ovvero differenze tra i valori di Temperatura e Tinta di origine e di destinazione già) che si desidera aggiungere all'immagine di origine.

+0

Grazie per quello, ma ancora non capisco come controllare la colorazione. Ad esempio, non ho capito come colorare un'immagine blu. –

-1

bene non esiste un esempio specifico per CITemperatureAndTint ma è possibile ottenere il codice per dimostrare l'utilizzo di NSImage come destinazione di disegno fuori schermo.

L'URL per quel codice è https://developer.apple.com/library/mac/#samplecode/Tinted_Image/Introduction/Intro.html#//apple_ref/doc/uid/DTS10000412-Intro-DontLinkElementID_2

Sono sicuro che è possibile modificarlo per usare CITemperatureAndTint o modificare il codice esistente per soddisfare le vostre esigenze.

Spero che questo aiuti.