Core Image
# Core Image

Core Image ist eine Grafikbibliothek in macOS. Als ein Bestandteil der QuartzCore-Bibliothek, erweitert es die Darstellungsfunktionen von Quartz mit einer Plug-in-basierten Architektur für Filter und Effekte.

## Überblick

Core Image stellt Programmen eine abstrakte Schnittstelle zur Verarbeitung von Rastergrafik zur Verfügung, mit der diese ohne Hardware-spezifischen Code Filter und Effekte anwenden können. Hierzu benutzt es so-genannte Image Units, das sind Filter, Transformationen oder andere Effekte, die aus den Original-Bilddaten ein neues Bild berechnen.

Ähnlich wie Photoshop-Filter können mehrere Image Units zusammen angewandt werden. Dabei werden die Image Units nicht einfach hintereinander angewendet, was nicht sehr effizient wäre. Stattdessen bestimmt Core Image zur Laufzeit eine Transformationsfunktion, die der Kombination der einzelnen Image Units entspricht, diese aber in einem einzigen Schritt ausführt. Dadurch entfallen der Speicheraufwand für die (potentiell großen) Zwischenstufen, und es wird eine größere Lokalität der Speicherzugriffe erreicht. Im Endeffekt ist dadurch eine Kombination von mehreren Image Units viel schneller als eine einfache sequentielle Abarbeitung.

Diese Transformationsfunktion wird entweder von der GPU der Grafikkarte, oder von der CPU ausgeführt, je nachdem, welche schneller ist.

## Geschichte

Core Image wurde mit Mac OS X 10.4 eingeführt. Mit iOS 5 wurde Core Image 2011 auch in iOS eingeführt.

