是否可以使用DirectX像素着色器为照片创建图像效果?我有一个C++应用程序,其中包括一种照片数据库管理器。它利用GDI +进行图像处理,我想为用户提供一些奇特的图像效果 - 我希望通过DirectX像素着色器进行处理。我希望实现类似的效果,比如Shazzam工具提供开箱即用的示例库 - 不幸的是,我使用的是纯粹的GDI +而没有使用WPF。使用DirectX HLSL像素着色器为照片创建图像效果
对于在GDI +位图我认为以下步骤创建的图像效果:
1)经由GDI负载图像+
2)初始化的DirectX,负载/编译的着色器,转换GDI +图像将被用作纹理在DirectX
3)画出4个顶点中的DirectX和使用照片作为纹理
4)将像素着色器
5)表面与像素shadered照片
1-4已经解决了保存,但如何实现第5步?
目前我使用下面的代码片断收集修改后的照片:
d3dDevice->GetRenderTarget(0, &surface);
D3DXSaveSurfaceToFile("Test.png", D3DXIFF_PNG, surface, NULL, NULL);
surface->Release();
surface = NULL;
此代码不适合我的需要,因为它抓住了整个现场,不仅纹理(=照片)。我怎样才能实现像素着色照片纹理恢复其原始大小?我想实现同样的结果Shazzam工具提供,但没有WPF ...
预先感谢您!
干杯!
谢谢!现在就像一个魅力! :) – barnacleboy 2012-08-16 20:37:55