我正在尋找一種在Python中截取DirectX遊戲截圖的方法。我已經嘗試過使用PIL和其他東西,但是我最終只能看到黑色的截圖。我看到項目directpython11提供了一些Python綁定到DirectX的東西,但是我沒有發現任何與外部DirectX應用程序截圖相關的東西。在Python中截取DirectX遊戲的截圖
我有點失落,任何幫助將不勝感激;)。
PS:我使用Python 2.7.3編碼在Windows 7
感謝
我正在尋找一種在Python中截取DirectX遊戲截圖的方法。我已經嘗試過使用PIL和其他東西,但是我最終只能看到黑色的截圖。我看到項目directpython11提供了一些Python綁定到DirectX的東西,但是我沒有發現任何與外部DirectX應用程序截圖相關的東西。在Python中截取DirectX遊戲的截圖
我有點失落,任何幫助將不勝感激;)。
PS:我使用Python 2.7.3編碼在Windows 7
感謝
32位這是一個相當複雜的話題。
實際上,以最簡單的方式截取屏幕截圖,涉及抓取backbuffer並將其寫入文件。你的Python DirectX綁定應該爲後臺或前臺緩衝區提供支持,從而製作紋理並填充數據;之後,形象寫作取決於你。
不幸的是,獲取backbuffer需要在應用程序獲取它之前鉤住DirectX並攔截呈現上下文。儘管很簡單,但這並沒有很好的記錄,並且需要一些(C++)代碼才能實現。您必須強制應用程序使用您控制的備用渲染上下文,然後自己截取屏幕截圖。
就我所知,截取的基本知識不能用純Python完成。您可以使用顯示編解碼器找到一種方法(在將屏幕傳送到合成器後獲取屏幕),或者您可以使用現有的DirectX掛鉤並實現最小的IPC來獲取數據並將其提供給Python以進行處理和編寫到一個文件。
編輯:如果您有興趣這樣做,我可以添加更多的細節和一些可能有用的代碼鏈接。我仍然不確定Python中是否有可能,但不要讓它阻止你嘗試。
當然,我一定會看看 – user1956413
我會抓住一些更多的信息,並在我回家後儘快編輯它(稍後逃離工作場所;))。 – ssube