Esiste un codice di esempio o un esempio per CITemperatureAndTint? Ho letto la sua documentazione ma ho bisogno di qualche esempio per implementarla.CITemperatureAndTint per immagine in iOS
risposta
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.
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.
Grazie per quello, ma ancora non capisco come controllare la colorazione. Ad esempio, non ho capito come colorare un'immagine blu. –
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.
ha funzionato in seguito per te? –