是否可以使用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