如何用Directx获取某一区域的截屏 小弟正在学习Directx技术,现在想用Directx来截取屏幕中某一区域的图像,希望懂的朋友能给出源码,谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 搜一下,多的很,全是DELPHI的 你的应用程序是全屏的么?如果是全屏的可以用下面的代码IDirect3DSurface9* pBackBuffer;pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);D3DXSaveSurfaceToFile(L"C:\\ScreenShot.bmp",D3DXIFF_BMP,pBackBuffer,NULL,NULL);pBackBuffer->Release();pBackBuffer = NULL;D3DXSaveSurfaceToFile函数的最后一个参数可以指定一个RECT对象,就是要截图的区域,或为NULL截取整个设备窗口。这个截图过程要在渲染结束之后和缓冲区翻转以前,一般在D3D设备的EndScene函数之后就可以。如果是窗口的话也好办,使用GDI全屏截图以后把设备窗口的截图bitblt到GDI的截图上,稍微麻烦点。 To bluekitty: 有没有不用bitblt的方法,直接通过Directx就截取区域屏幕的方法,呵呵 你告诉我 【bluekitty】的方法什么地方用到bitblt方法了?IDirect3DSurface9* pBackBuffer;pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);D3DXSaveSurfaceToFile(L"C:\\ScreenShot.bmp",D3DXIFF_BMP,pBackBuffer,NULL,NULL);pBackBuffer->Release();pBackBuffer = NULL; 对比文件的修改时间 delphi 如何获取临时公网ip 我如何知道窗口的最大化, 最小化消息? 請高手幫看一下﹕(單擊dbgrid的標題可以實現排序的問題) 动态创建类对象的问题 求助!! 100分请教:哪位高手能告诉我 IdTunnelMaster 和 TIdTunnelSlave 的用法? 关于窗体属性的小问题 我在用adoquery1.loadfromfile(example.xml)后,不知道怎样才能修改和添加记录到数据库? 求助Delphi ADO 连接 MySQL数据怪事。 delphi activex 里的子程序调用组件的疑问 delphi 用ADO如何连上sybase?
pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
D3DXSaveSurfaceToFile(L"C:\\ScreenShot.bmp",D3DXIFF_BMP,pBackBuffer,NULL,NULL);
pBackBuffer->Release();
pBackBuffer = NULL;D3DXSaveSurfaceToFile函数的最后一个参数可以指定一个RECT对象,就是要截图的区域,或为NULL截取整个设备窗口。这个截图过程要在渲染结束之后和缓冲区翻转以前,一般在D3D设备的EndScene函数之后就可以。
如果是窗口的话也好办,使用GDI全屏截图以后把设备窗口的截图bitblt到GDI的截图上,稍微麻烦点。
有没有不用bitblt的方法,直接通过Directx就截取区域屏幕的方法,呵呵
你告诉我 【bluekitty】的方法什么地方用到bitblt方法了?IDirect3DSurface9* pBackBuffer;
pd3dDevice->GetBackBuffer(0,0,D3DBACKBUFFER_TYPE_MONO,&pBackBuffer);
D3DXSaveSurfaceToFile(L"C:\\ScreenShot.bmp",D3DXIFF_BMP,pBackBuffer,NULL,NULL);
pBackBuffer->Release();
pBackBuffer = NULL;