Для тех, кто не знаком с Core Image, вот хорошее его описание: http://developer.apple.com/macosx/coreimage.html
Есть ли что-то эквивалентное CoreImage / CoreVideo от Apple для Windows? Я осмотрелся и нашел материал DirectX / Direct3D, в котором есть все базовые части, но, похоже, нет никакого высокоуровневого API для работы, если вы не хотите использовать .NET И, используя WPF, ни один из которых меня действительно интересуют.
Основная идея состоит в том, чтобы создать / загрузить изображение, присоединить любое количество фильтров, которые можно связать вместе, сформировать график, а затем визуализировать изображение в HDC, используя графический процессор для выполнения большей части тяжелой работы. В DirectX / Direct3D есть эти элементы, но вам придется преодолеть множество препятствий (по крайней мере, так кажется), чтобы их использовать.





Существует множество инструментов для работы с шейдерами (например, RenderMonkey и FX-Composer), но прямого эквивалента CoreImage нет.
Но наложить фрагментные шейдеры друг на друга не так уж сложно, поэтому, если вы не против изучения OpenGL, было бы вполне реально создать фреймворк, который применяет шейдеры к входному изображению и выводит результат на HDC.
Это RenderMonkey, а не ShaderMonkey
Новый Пиксельный блендер от Adobe - самая близкая технология. Он кроссплатформенный - это часть среды выполнения Flash 10, а также ключевых пиксельно-ориентированных приложений CS4, а именно After Effects и (скоро) Photoshop. Однако неясно, сколько в настоящее время доступно для встраивания в другие приложения. В самом крайнем случае должно быть возможно встраивание путем встраивания представления Flash, но это больше накладных расходов, чем очевидно.
Существует также по крайней мере одно стороннее предложение меньшего масштаба: Conduit Pixel Engine. Это коммерческий вариант, однако без четкого указания цены лицензии.
Теперь у меня есть решение. Я реализовал класс ImageContext, специальный класс Image и класс Filter, который обеспечивает аналогичную функциональность с CoreImage от Apple. Все трое используют OpenGL (я отказался от попыток заставить это работать с DirectX из-за проблем с качеством изображения, если кто-то хорошо знает DirectX, свяжитесь со мной, потому что я бы хотел иметь версию Dx) для рендеринга изображений в context и использовать фильтры для применения их эффектов (как фрагментные шейдеры HLGL). Здесь есть краткое описание: ImageKit со снимком экрана с примером фильтра и некоторыми примерами исходного кода.
HDC == контекст отображения Windows API низкого уровня