【问题标题】:CoreImage for Win32Win32 的 CoreImage
【发布时间】:2010-09-14 10:38:21
【问题描述】:

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

有没有相当于 Apple 的 CoreImage/CoreVideo for Windows 的东西?我环顾四周,发现了 DirectX/Direct3D 的东西,它包含所有底层部分,但似乎没有任何高级 API 可以使用,除非你愿意使用 .NET AND 使用 WPF,我对这两个都不感兴趣。

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

【问题讨论】:

  • HDC == 低级 Windows API 显示上下文

标签: opengl image-processing direct3d core-image


【解决方案1】:

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

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

【讨论】:

  • 这是 RenderMonkey,不是 ShaderMonkey
【解决方案2】:

Adobe 的新 Pixel Blender 是目前最接近的技术。它是跨平台的——它是 Flash 10 运行时的一部分,也是面向像素的关键 CS4 应用程序,即 After Effects 和(即将推出的)Photoshop。然而,目前尚不清楚目前有多少可以嵌入到其他应用程序中。在最极端的情况下,应该可以通过嵌入 Flash 视图来进行嵌入,但这显然比想象中的开销更大。

还有至少一种规模较小的第 3 方产品:Conduit Pixel Engine。它是商业的,但是没有明确列出许可价格。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2013-02-15
      • 2014-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      相关资源
      最近更新 更多