2016-04-02 6 views
0

Ich habe mich auf invertierende CImage Farben festgefahren. Ich erstelle CIImage von CGImage und dann CIColorInvert Filter oder CIColorMatrix Filter anwenden, aber keiner von ihnen funktioniert ordnungsgemäß. Wenn ich CIImage als CGImage rendere, erhalte ich Ergebnisse, die scheinbar gesättigt sind (siehe beigefügtes Beispiel).CIColorInvert und CIColorMatrix invertiert das Bild nicht richtig

exmples of color invert using different approaches

Ich denke, dass das Problem ist, aber ich Farbraum habe keine Ahnung, wie man es beheben. Ich folgte dem Core Image Programming Guide (Kapitel: CIFilter unterlegen: Rezepte für benutzerdefinierte Effekte, Abschnitt: CIFilter zum Erstellen des CIColorInvert-Filters unterklassifizieren), aber ohne Erfolg.

Ich würde für Hinweise sehr dankbar ...

+0

Wofür ist der inputbiasvector eingestellt? – Roecrew

+0

Der Input-Bias-Vektor folgt: 'invertFilter? .setValue (CIVector (x: 1.0, y: 1.0, z: 1.0, w: 0), forKey:" inputBiasVector ")'. Vielen Dank für Ihr Interesse und verstehen Sie mich nicht falsch, aber ich habe gerade eine Lösung gefunden. Ich habe nicht daran gearbeitet und du hast mich an dieses Problem erinnert, also habe ich versucht, tief in das Thema einzusteigen. Ich werde eine Lösung zu dieser Frage als Antwort geben. –

Antwort

1

Das Problem war im Farbraum arbeiten. Ich habe eine Antwort auf meine Frage here gefunden. Die CIContext, die ich jetzt aussieht wie follwing schafft:

var ciContext = CIContext(options: [kCIImageColorSpace: NSNull(), kCIImageProperties: NSNull(), kCIContextWorkingColorSpace: NSNull()]) 

Um ehrlich zu sein, ich weiß es nicht genau den Hintergrund, so dass ich bin mir nicht sicher, warum es nicht, ohne zu arbeiten WorkingColorSpace zu NSNull Einstellung. Wenn jemand weiß, wäre ich wirklich dankbar für die Erklärung.

Verwandte Themen