2008-10-01 11 views
5

Para aquellos que no están familiarizados con el sistema central de la imagen, esta es una buena descripción de la misma? Miré a mi alrededor y encontré el material de DirectX/Direct3D, que tiene todas las piezas subyacentes, pero no parece haber ninguna API de alto nivel con la que trabajar, a menos que esté dispuesto a usar .NET Y use WPF, ni de los cuales realmente me interesanCoreImage para Win32

La idea básica sería crear/cargar una imagen, adjuntar cualquier cantidad de filtros que puedan encadenarse entre sí, formar un gráfico y luego renderizar la imagen en un HDC, utilizando la GPU para hacer la mayor parte del trabajo. DirectX/Direct3D tiene estas piezas, pero tienes que saltar a través de muchos aros (o eso parece) para usarlo.

+0

HDC == contexto de visualización de Windows API de bajo nivel –

Respuesta

1

Hay una variedad de herramientas para trabajar con sombreadores (como RenderMonkey y FX-Composer), pero no hay un equivalente directo a CoreImage.

Pero juntar fragmentadores de fragmentos uno encima del otro no es muy difícil, así que si no te importa aprender OpenGL, sería bastante factible construir un marco que aplique sombreadores a una imagen de entrada y dibuje el resultado en un HDC.

+0

Es RenderMonkey, no ShaderMonkey – faulty

0

La nueva tecnología de Pixel Blender de Adobe es la tecnología más cercana. Es multiplataforma: forma parte del tiempo de ejecución de Flash 10, así como de las aplicaciones clave de CS4 orientadas a píxeles, concretamente After Effects y (próximamente) Photoshop. No está claro, sin embargo, cuánto está expuesto actualmente para incrustarse en otras aplicaciones en este punto. En el caso más extremo, debería ser posible incrustar incrustando una vista Flash, pero eso es más sobrecarga de lo que obviamente sería una idea.

También hay al menos una oferta de terceros a menor escala: Conduit Pixel Engine. Sin embargo, es comercial, sin precios de licencia claramente listados.

0

Ahora tengo una solución para esto. Implementé una clase ImageContext, una clase de imagen especial y una clase de filtro que permite una funcionalidad similar a CoreImage de Apple. Los tres usan OpenGL (dejé de intentar hacer que esto funcione en DirectX debido a problemas de calidad de imagen, si alguien sabe que DirectX me contacta, porque me encantaría tener una versión Dx) para renderizar una imagen (s) a contexto y utiliza los filtros para aplicar sus efectos (como sombreadores de fragmentación HLGL). Hay una breve redacción aquí: ImageKit con una captura de pantalla de un filtro de ejemplo y un código fuente de muestra.