CoreImage для Win32

Для тех, кто не знаком с Core Image, вот хорошее его описание: http://developer.apple.com/macosx/coreimage.html

Есть ли что-то эквивалентное CoreImage / CoreVideo от Apple для Windows? Я осмотрелся и нашел материал DirectX / Direct3D, в котором есть все базовые части, но, похоже, нет никакого высокоуровневого API для работы, если вы не хотите использовать .NET И, используя WPF, ни один из которых меня действительно интересуют.

Основная идея состоит в том, чтобы создать / загрузить изображение, присоединить любое количество фильтров, которые можно связать вместе, сформировать график, а затем визуализировать изображение в HDC, используя графический процессор для выполнения большей части тяжелой работы. В DirectX / Direct3D есть эти элементы, но вам придется преодолеть множество препятствий (по крайней мере, так кажется), чтобы их использовать.

HDC == контекст отображения Windows API низкого уровня

Ben Combee 02.10.2008 18:22
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
5
1
722
3

Ответы 3

Существует множество инструментов для работы с шейдерами (например, RenderMonkey и FX-Composer), но прямого эквивалента CoreImage нет.

Но наложить фрагментные шейдеры друг на друга не так уж сложно, поэтому, если вы не против изучения OpenGL, было бы вполне реально создать фреймворк, который применяет шейдеры к входному изображению и выводит результат на HDC.

Это RenderMonkey, а не ShaderMonkey

faulty 01.10.2008 17:54

Новый Пиксельный блендер от Adobe - самая близкая технология. Он кроссплатформенный - это часть среды выполнения Flash 10, а также ключевых пиксельно-ориентированных приложений CS4, а именно After Effects и (скоро) Photoshop. Однако неясно, сколько в настоящее время доступно для встраивания в другие приложения. В самом крайнем случае должно быть возможно встраивание путем встраивания представления Flash, но это больше накладных расходов, чем очевидно.

Существует также по крайней мере одно стороннее предложение меньшего масштаба: Conduit Pixel Engine. Это коммерческий вариант, однако без четкого указания цены лицензии.

Теперь у меня есть решение. Я реализовал класс ImageContext, специальный класс Image и класс Filter, который обеспечивает аналогичную функциональность с CoreImage от Apple. Все трое используют OpenGL (я отказался от попыток заставить это работать с DirectX из-за проблем с качеством изображения, если кто-то хорошо знает DirectX, свяжитесь со мной, потому что я бы хотел иметь версию Dx) для рендеринга изображений в context и использовать фильтры для применения их эффектов (как фрагментные шейдеры HLGL). Здесь есть краткое описание: ImageKit со снимком экрана с примером фильтра и некоторыми примерами исходного кода.

Другие вопросы по теме