Win32的CoreImage

时间:2008-10-01 03:30:10

标签: opengl image-processing direct3d core-image

对于那些不熟悉Core Image的人,这里有一个很好的描述: http://developer.apple.com/macosx/coreimage.html

是否有类似于Apple的CoreImage / CoreVideo for Windows的东西?我环顾四周,找到了DirectX / Direct3D的东西,它有所有底层的东西,但似乎没有任何高级API可以使用,除非你愿意使用.NET AND 使用WPF,我都不感兴趣。

基本思想是创建/加载图像,附加任意数量的可以链接在一起的过滤器,形成图形,然后将图像渲染到HDC,使用GPU完成大部分艰苦工作。 DirectX / Direct3D有这些部分,但你必须跳过很多箍(或者看起来似乎)才能使用它。

3 个答案:

答案 0 :(得分:1)

有多种工具可用于着色器(例如RenderMonkey和FX-Composer),但没有直接等效于CoreImage。

但是将片段着色器堆叠在一起并不是很难,所以如果你不介意学习OpenGL,那么建立一个将着色器应用于输入图像并将结果绘制到HDC的框架是非常可行的。

答案 1 :(得分:0)

Adob​​e的新Pixel Blender是最接近的技术。它是跨平台的 - 它是Flash 10运行时的一部分,以及关键的面向像素的CS4应用程序,即After Effects和(很快)Photoshop。然而,目前还不清楚目前在其他应用程序中嵌入了多少。在最极端的情况下,应该可以通过嵌入Flash视图来嵌入,但这比显然想法的开销更大。

还有至少一个较小规模的第三方提供:Conduit Pixel Engine。它是商业性的,但没有明确列出许可价格。

答案 2 :(得分:0)

我现在有了解决方案。我已经实现了一个ImageContext类,一个特殊的Image类和一个允许类似Apple的CoreImage功能的Filter类。所有三个都使用OpenGL(由于图像质量问题,我放弃了试图让它在DirectX上工作,如果有人知道DirectX很好地联系我,因为我喜欢有Dx版本)将图像渲染到上下文并使用过滤器来应用它们的效果(作为HLGL碎片着色器)。这里有一个简短的写: ImageKit 屏幕截图显示了一个示例过滤器和一些示例源代码。